Say M here if you want to include support for the Qualcomm RPM as a
          module. This will build a module called "qcom_rpm".
 
+config MFD_SPACEMIT_P1
+       tristate "SpacemiT P1 PMIC"
+       depends on ARCH_SPACEMIT || COMPILE_TEST
+       depends on I2C
+       select I2C_K1
+       select MFD_SIMPLE_MFD_I2C
+       help
+         This option supports the I2C-based SpacemiT P1 PMIC, which
+         contains regulators, a power switch, GPIOs, an RTC, and more.
+         This option is selected when any of the supported sub-devices
+         is configured.  The basic functionality is implemented by the
+         simple MFD I2C driver.
+
 config MFD_SPMI_PMIC
        tristate "Qualcomm SPMI PMICs"
        depends on ARCH_QCOM || COMPILE_TEST
 
        .mfd_cell_size = ARRAY_SIZE(max77705_sensor_cells),
 };
 
+static const struct regmap_config spacemit_p1_regmap_config = {
+       .reg_bits = 8,
+       .val_bits = 8,
+};
+
+static const struct mfd_cell spacemit_p1_cells[] = {
+       { .name = "spacemit-p1-regulator", },
+       { .name = "spacemit-p1-rtc", },
+};
+
+static const struct simple_mfd_data spacemit_p1 = {
+       .regmap_config = &spacemit_p1_regmap_config,
+       .mfd_cell = spacemit_p1_cells,
+       .mfd_cell_size = ARRAY_SIZE(spacemit_p1_cells),
+};
+
 static const struct of_device_id simple_mfd_i2c_of_match[] = {
        { .compatible = "kontron,sl28cpld" },
        { .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
        { .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
        { .compatible = "fsl,lx2160aqds-fpga" },
        { .compatible = "fsl,ls1028aqds-fpga" },
+       { .compatible = "spacemit,p1", .data = &spacemit_p1, },
        {}
 };
 MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);