++enum pmu_endian_type {
++ BIG_ENDIAN,
++ LITTLE_ENDIAN,
++};
++
++struct rcpm_cfg {
++ enum pmu_endian_type big_endian; /* Big/Little endian of PMU module */
++ u32 flextimer_set_bit; /* FlexTimer1 is not powerdown during device LPM20 */
++};
++
++static struct rcpm_cfg ls1012a_rcpm_cfg = {
++ .big_endian = BIG_ENDIAN,
++ .flextimer_set_bit = 0x20000,
++};
++
++static struct rcpm_cfg ls1021a_rcpm_cfg = {
++ .big_endian = BIG_ENDIAN,
++ .flextimer_set_bit = 0x20000,
++};
++
++static struct rcpm_cfg ls1043a_rcpm_cfg = {
++ .big_endian = BIG_ENDIAN,
++ .flextimer_set_bit = 0x20000,
++};
++
++static struct rcpm_cfg ls1046a_rcpm_cfg = {
++ .big_endian = BIG_ENDIAN,
++ .flextimer_set_bit = 0x20000,
++};
++
++static struct rcpm_cfg ls1088a_rcpm_cfg = {
++ .big_endian = LITTLE_ENDIAN,
++ .flextimer_set_bit = 0x4000,
++};
++
++static struct rcpm_cfg ls208xa_rcpm_cfg = {
++ .big_endian = LITTLE_ENDIAN,
++ .flextimer_set_bit = 0x4000,
++};
++
++static const struct of_device_id ippdexpcr_of_match[] = {
++ { .compatible = "fsl,ls1012a-ftm", .data = &ls1012a_rcpm_cfg},
++ { .compatible = "fsl,ls1021a-ftm", .data = &ls1021a_rcpm_cfg},
++ { .compatible = "fsl,ls1043a-ftm", .data = &ls1043a_rcpm_cfg},
++ { .compatible = "fsl,ls1046a-ftm", .data = &ls1046a_rcpm_cfg},
++ { .compatible = "fsl,ls1088a-ftm", .data = &ls1088a_rcpm_cfg},
++ { .compatible = "fsl,ls208xa-ftm", .data = &ls208xa_rcpm_cfg},
++ {},
++};
++MODULE_DEVICE_TABLE(of, ippdexpcr_of_match);
++