[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <089D29348F246F2C+aJ6bPgJsp5GjhDs5@LT-Guozexi>
Date: Fri, 15 Aug 2025 10:28:14 +0800
From: Troy Mitchell <troy.mitchell@...ux.spacemit.com>
To: Alex Elder <elder@...cstar.com>, lee@...nel.org, lgirdwood@...il.com,
broonie@...nel.org, alexandre.belloni@...tlin.com, robh@...nel.org,
krzk+dt@...nel.org, conor+dt@...nel.org
Cc: mat.jonczyk@...pl, dlan@...too.org, paul.walmsley@...ive.com,
palmer@...belt.com, aou@...s.berkeley.edu, alex@...ti.fr,
linux.amoon@...il.com, troymitchell988@...il.com,
guodong@...cstar.com, linux-rtc@...r.kernel.org,
devicetree@...r.kernel.org, linux-riscv@...ts.infradead.org,
spacemit@...ts.linux.dev, linux-kernel@...r.kernel.org,
Troy Mitchell <troy.mitchell@...ux.spacemit.com>
Subject: Re: [PATCH v12 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support
Hi, Alex,
I did not find any accesses to the P1 shutdown or reboot registers here.
Does this mean that the current series does not support reboot or shutdown?
If so, do you have any plans to support this functionality?
If I have misunderstood, please correct me.
Best regards,
Troy
On Tue, Aug 12, 2025 at 09:45:03PM -0500, Alex Elder wrote:
> Enable support for the RTC and regulators found in the SpacemiT P1
> PMIC. Support is implemented by the simple I2C MFD driver.
>
> The P1 PMIC is normally implemented with the SpacemiT K1 SoC. This
> PMIC provides 6 buck converters and 12 LDO regulators. It also
> implements a switch, watchdog timer, real-time clock, and more.
> Initially its RTC and regulators are supported.
>
> Signed-off-by: Alex Elder <elder@...cstar.com>
> ---
> drivers/mfd/Kconfig | 11 +++++++++++
> drivers/mfd/simple-mfd-i2c.c | 18 ++++++++++++++++++
> 2 files changed, 29 insertions(+)
>
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 425c5fba6cb1e..4d6a5a3a27220 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -1238,6 +1238,17 @@ config MFD_QCOM_RPM
> 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 I2C
> + 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
> diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
> index 22159913bea03..47ffaac035cae 100644
> --- a/drivers/mfd/simple-mfd-i2c.c
> +++ b/drivers/mfd/simple-mfd-i2c.c
> @@ -93,12 +93,30 @@ static const struct simple_mfd_data maxim_mon_max77705 = {
> .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,max5970", .data = &maxim_max5970},
> { .compatible = "maxim,max5978", .data = &maxim_max5970},
> { .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
> + { .compatible = "spacemit,p1", .data = &spacemit_p1, },
> {}
> };
> MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);
> --
> 2.48.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Powered by blists - more mailing lists