From: Lee Jones <lee@kernel.org>
To: Alex Elder <elder@riscstar.com>
Cc: lgirdwood@gmail.com, broonie@kernel.org,
alexandre.belloni@bootlin.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, mat.jonczyk@o2.pl,
dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
aou@eecs.berkeley.edu, alex@ghiti.fr, troymitchell988@gmail.com,
linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
linux-riscv@lists.infradead.org, spacemit@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support
Date: Fri, 27 Jun 2025 13:51:19 +0100 [thread overview]
Message-ID: <20250627125119.GF10134@google.com> (raw)
In-Reply-To: <20250625164119.1068842-3-elder@riscstar.com>
On Wed, 25 Jun 2025, 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@riscstar.com>
> ---
> v4: - Add a dependency on I2C, to avoid a CROSS_COMPILE build error
>
> 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 6fb3768e3d71c..01805c3eec57d 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -1182,6 +1182,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..026cd92e20ad3 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,
> + .max_register = 0xaa,
> +};
Suggest making this more widely useful by adding the 'max_register'
attribute to 'struct simple_mfd' and conditionally overriding
regmap_config_8r_8v's value during probe.
> +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.45.2
>
--
Lee Jones [李琼斯]
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee@kernel.org>
To: Alex Elder <elder@riscstar.com>
Cc: lgirdwood@gmail.com, broonie@kernel.org,
alexandre.belloni@bootlin.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, mat.jonczyk@o2.pl,
dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
aou@eecs.berkeley.edu, alex@ghiti.fr, troymitchell988@gmail.com,
linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
linux-riscv@lists.infradead.org, spacemit@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support
Date: Fri, 27 Jun 2025 13:51:19 +0100 [thread overview]
Message-ID: <20250627125119.GF10134@google.com> (raw)
In-Reply-To: <20250625164119.1068842-3-elder@riscstar.com>
On Wed, 25 Jun 2025, 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@riscstar.com>
> ---
> v4: - Add a dependency on I2C, to avoid a CROSS_COMPILE build error
>
> 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 6fb3768e3d71c..01805c3eec57d 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -1182,6 +1182,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..026cd92e20ad3 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,
> + .max_register = 0xaa,
> +};
Suggest making this more widely useful by adding the 'max_register'
attribute to 'struct simple_mfd' and conditionally overriding
regmap_config_8r_8v's value during probe.
> +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.45.2
>
--
Lee Jones [李琼斯]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-06-27 12:51 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 16:41 [PATCH v4 0/7] spacemit: introduce P1 PMIC support Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 1/7] dt-bindings: mfd: add support the SpacemiT P1 PMIC Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 2/7] mfd: simple-mfd-i2c: add SpacemiT P1 support Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-27 12:51 ` Lee Jones [this message]
2025-06-27 12:51 ` Lee Jones
2025-06-27 13:36 ` Alex Elder
2025-06-27 13:36 ` Alex Elder
2025-07-01 11:07 ` Lee Jones
2025-07-01 11:07 ` Lee Jones
2025-06-25 16:41 ` [PATCH v4 3/7] regulator: spacemit: support SpacemiT P1 regulators Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 4/7] rtc: spacemit: support the SpacemiT P1 RTC Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 22:01 ` Alexandre Belloni
2025-06-25 22:01 ` Alexandre Belloni
2025-06-25 22:10 ` Alex Elder
2025-06-25 22:10 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 5/7] riscv: dts: spacemit: enable the i2c8 adapter Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 6/7] riscv: dts: spacemit: define fixed regulators Alex Elder
2025-06-25 16:41 ` Alex Elder
2025-06-25 16:41 ` [PATCH v4 7/7] riscv: dts: spacemit: define regulator constraints Alex Elder
2025-06-25 16:41 ` Alex Elder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250627125119.GF10134@google.com \
--to=lee@kernel.org \
--cc=alex@ghiti.fr \
--cc=alexandre.belloni@bootlin.com \
--cc=aou@eecs.berkeley.edu \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlan@gentoo.org \
--cc=elder@riscstar.com \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-rtc@vger.kernel.org \
--cc=mat.jonczyk@o2.pl \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh@kernel.org \
--cc=spacemit@lists.linux.dev \
--cc=troymitchell988@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.