All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joy Zou <joy.zou@nxp.com>
To: Alexander Stein <alexander.stein@ew.tq-group.com>,
	Jacky Bai <ping.bai@nxp.com>,
	"lgirdwood@gmail.com" <lgirdwood@gmail.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org"
	<krzysztof.kozlowski+dt@linaro.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	dl-linux-imx <linux-imx@nxp.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>
Subject: RE: [EXT] Re: [PATCH v2 2/3] regulator: pca9450: add pca9451a support
Date: Mon, 11 Mar 2024 09:13:17 +0000	[thread overview]
Message-ID: <DB9PR04MB9377CEF84C01A99C396B936AE1242@DB9PR04MB9377.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <6027895.lOV4Wx5bFT@steina-w>


> -----Original Message-----
> From: Alexander Stein <alexander.stein@ew.tq-group.com>
> Sent: 2024年3月11日 17:09
> To: Jacky Bai <ping.bai@nxp.com>; lgirdwood@gmail.com;
> broonie@kernel.org; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de;
> linux-arm-kernel@lists.infradead.org
> Cc: kernel@pengutronix.de; festevam@gmail.com; dl-linux-imx
> <linux-imx@nxp.com>; devicetree@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> imx@lists.linux.dev; Joy Zou <joy.zou@nxp.com>
> Subject: [EXT] Re: [PATCH v2 2/3] regulator: pca9450: add pca9451a support
>
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
>
>
> Hi,
>
> thanks for the update.
>
> Am Montag, 11. März 2024, 09:47:56 CET schrieb Joy Zou:
> > Adding support for pmic pca9451a.
> >
> > This patch support old and new pmic pca9451a. The new pmic trimed
> BUCK1.
> > The default value of Toff_Deb is used to distinguish the old and new pmic.
>
> This section doesn't apply anymore. Please remove it.
>
> > Signed-off-by: Joy Zou <joy.zou@nxp.com>
> > ---
> > Changes in v2:
> > 1. remove the old part support because the old part only is used for
> > sample and is diffcult to distinguish old and new part. so drop old part.
> > 2. remove the unnecessary marco definition in the file pca9450.h.
> > ---
> >  drivers/regulator/pca9450-regulator.c | 197
> +++++++++++++++++++++++++-
> >  include/linux/regulator/pca9450.h     |   1 +
> >  2 files changed, 195 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/regulator/pca9450-regulator.c
> > b/drivers/regulator/pca9450-regulator.c
> > index 2ab365d2749f..50c324e275b5 100644
> > --- a/drivers/regulator/pca9450-regulator.c
> > +++ b/drivers/regulator/pca9450-regulator.c
> > @@ -103,7 +103,15 @@ static const struct regulator_ops
> pca9450_ldo_regulator_ops = {
> >   * 0.60 to 2.1875V (12.5mV step)
> >   */
> >  static const struct linear_range pca9450_dvs_buck_volts[] = {
> > -     REGULATOR_LINEAR_RANGE(600000,  0x00, 0x7F, 12500),
> > +     REGULATOR_LINEAR_RANGE(600000, 0x00, 0x7F, 12500), };
>
> That's an unrelated change.
Yeah, I will remove it.
>
> > +/*
> > + * BUCK1/3
> > + * 0.65 to 2.2375V (12.5mV step)
> > + */
> > +static const struct linear_range pca9451a_dvs_buck_volts[] = {
> > +     REGULATOR_LINEAR_RANGE(650000, 0x00, 0x7F, 12500),
> >  };
> >
> >  /*
> > @@ -662,6 +670,178 @@ static const struct pca9450_regulator_desc
> pca9450bc_regulators[] = {
> >       },
> >  };
> >
> > +static const struct pca9450_regulator_desc pca9451a_regulators[] = {
> > +     {
> > +             .desc = {
> > +                     .name = "buck1",
> > +                     .of_match = of_match_ptr("BUCK1"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK1,
> > +                     .ops = &pca9450_dvs_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK1_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9451a_dvs_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9451a_dvs_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK1OUT_DVS0,
> > +                     .vsel_mask = BUCK1OUT_DVS0_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK1CTRL,
> > +                     .enable_mask = BUCK1_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .ramp_mask = BUCK1_RAMP_MASK,
> > +                     .ramp_delay_table =
> pca9450_dvs_buck_ramp_table,
> > +                     .n_ramp_values =
> ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
> > +                     .owner = THIS_MODULE,
> > +                     .of_parse_cb = pca9450_set_dvs_levels,
> > +             },
> > +             .dvs = {
> > +                     .run_reg = PCA9450_REG_BUCK1OUT_DVS0,
> > +                     .run_mask = BUCK1OUT_DVS0_MASK,
> > +                     .standby_reg = PCA9450_REG_BUCK1OUT_DVS1,
> > +                     .standby_mask = BUCK1OUT_DVS1_MASK,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck2",
> > +                     .of_match = of_match_ptr("BUCK2"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK2,
> > +                     .ops = &pca9450_dvs_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK2_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_dvs_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_dvs_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK2OUT_DVS0,
> > +                     .vsel_mask = BUCK2OUT_DVS0_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK2CTRL,
> > +                     .enable_mask = BUCK2_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
> > +                     .ramp_mask = BUCK2_RAMP_MASK,
> > +                     .ramp_delay_table =
> pca9450_dvs_buck_ramp_table,
> > +                     .n_ramp_values =
> ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
> > +                     .owner = THIS_MODULE,
> > +                     .of_parse_cb = pca9450_set_dvs_levels,
> > +             },
> > +             .dvs = {
> > +                     .run_reg = PCA9450_REG_BUCK2OUT_DVS0,
> > +                     .run_mask = BUCK2OUT_DVS0_MASK,
> > +                     .standby_reg = PCA9450_REG_BUCK2OUT_DVS1,
> > +                     .standby_mask = BUCK2OUT_DVS1_MASK,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck4",
> > +                     .of_match = of_match_ptr("BUCK4"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK4,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK4_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK4OUT,
> > +                     .vsel_mask = BUCK4OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK4CTRL,
> > +                     .enable_mask = BUCK4_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck5",
> > +                     .of_match = of_match_ptr("BUCK5"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK5,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK5_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK5OUT,
> > +                     .vsel_mask = BUCK5OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK5CTRL,
> > +                     .enable_mask = BUCK5_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck6",
> > +                     .of_match = of_match_ptr("BUCK6"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK6,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK6_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK6OUT,
> > +                     .vsel_mask = BUCK6OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK6CTRL,
> > +                     .enable_mask = BUCK6_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo1",
> > +                     .of_match = of_match_ptr("LDO1"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO1,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO1_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo1_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo1_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO1CTRL,
> > +                     .vsel_mask = LDO1OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO1CTRL,
> > +                     .enable_mask = LDO1_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo4",
> > +                     .of_match = of_match_ptr("LDO4"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO4,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO4_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo34_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo34_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO4CTRL,
> > +                     .vsel_mask = LDO4OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO4CTRL,
> > +                     .enable_mask = LDO4_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo5",
> > +                     .of_match = of_match_ptr("LDO5"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO5,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO5_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo5_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo5_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO5CTRL_H,
> > +                     .vsel_mask = LDO5HOUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO5CTRL_H,
> > +                     .enable_mask = LDO5H_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +};
> > +
> >  static irqreturn_t pca9450_irq_handler(int irq, void *data)  {
> >       struct pca9450 *pca9450 = data;
> > @@ -729,6 +909,10 @@ static int pca9450_i2c_probe(struct i2c_client
> *i2c)
> >               regulator_desc = pca9450bc_regulators;
> >               pca9450->rcnt = ARRAY_SIZE(pca9450bc_regulators);
> >               break;
> > +     case PCA9450_TYPE_PCA9451A:
> > +             regulator_desc = pca9451a_regulators;
> > +             pca9450->rcnt = ARRAY_SIZE(pca9451a_regulators);
> > +             break;
> >       default:
> >               dev_err(&i2c->dev, "Unknown device type");
> >               return -EINVAL;
> > @@ -755,7 +939,8 @@ static int pca9450_i2c_probe(struct i2c_client
> > *i2c)
> >
> >       /* Check your board and dts for match the right pmic */
> >       if (((device_id >> 4) != 0x1 && type == PCA9450_TYPE_PCA9450A)
> ||
> > -         ((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC))
> {
> > +         ((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC)
> ||
> > +         ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A))
> > + {
> >               dev_err(&i2c->dev, "Device id(%x) mismatched\n",
> >                       device_id >> 4);
> >               return -EINVAL;
> > @@ -767,6 +952,7 @@ static int pca9450_i2c_probe(struct i2c_client
> *i2c)
> >               const struct pca9450_regulator_desc *r;
> >
> >               r = &regulator_desc[i];
> > +
>
> Please don't add this empty line. Seems like a leftover from v1.
>
Okay, will remove the empty line.
Thank you very much.
BR
Joy Zou
> Thanks and best regards,
> Alexander
>
> >               desc = &r->desc;
> >
> >               config.regmap = pca9450->regmap; @@ -846,7 +1032,8
> @@
> > static int pca9450_i2c_probe(struct i2c_client *i2c)
> >       }
> >
> >       dev_info(&i2c->dev, "%s probed.\n",
> > -             type == PCA9450_TYPE_PCA9450A ? "pca9450a" :
> "pca9450bc");
> > +             type == PCA9450_TYPE_PCA9450A ? "pca9450a" :
> > +             (type == PCA9450_TYPE_PCA9451A ? "pca9451a" :
> > + "pca9450bc"));
> >
> >       return 0;
> >  }
> > @@ -864,6 +1051,10 @@ static const struct of_device_id
> pca9450_of_match[] = {
> >               .compatible = "nxp,pca9450c",
> >               .data = (void *)PCA9450_TYPE_PCA9450BC,
> >       },
> > +     {
> > +             .compatible = "nxp,pca9451a",
> > +             .data = (void *)PCA9450_TYPE_PCA9451A,
> > +     },
> >       { }
> >  };
> >  MODULE_DEVICE_TABLE(of, pca9450_of_match); diff --git
> > a/include/linux/regulator/pca9450.h
> > b/include/linux/regulator/pca9450.h
> > index 505c908dbb81..243633c8dceb 100644
> > --- a/include/linux/regulator/pca9450.h
> > +++ b/include/linux/regulator/pca9450.h
> > @@ -9,6 +9,7 @@
> >  enum pca9450_chip_type {
> >       PCA9450_TYPE_PCA9450A = 0,
> >       PCA9450_TYPE_PCA9450BC,
> > +     PCA9450_TYPE_PCA9451A,
> >       PCA9450_TYPE_AMOUNT,
> >  };
> >
> >
>
>
> --
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> http://www.t/
> q-group.com%2F&data=05%7C02%7Cjoy.zou%40nxp.com%7C127cf372317a
> 45bcefe508dc41aaeb74%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7
> C0%7C638457449552418123%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC
> 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C
> %7C%7C&sdata=3EUbZ%2B8PQtMQ%2F4hC71tn1T3cqnQwGBwnaQf3xleDq
> %2FQ%3D&reserved=0
>


WARNING: multiple messages have this Message-ID (diff)
From: Joy Zou <joy.zou@nxp.com>
To: Alexander Stein <alexander.stein@ew.tq-group.com>,
	Jacky Bai <ping.bai@nxp.com>,
	"lgirdwood@gmail.com" <lgirdwood@gmail.com>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org"
	<krzysztof.kozlowski+dt@linaro.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	dl-linux-imx <linux-imx@nxp.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>
Subject: RE: [EXT] Re: [PATCH v2 2/3] regulator: pca9450: add pca9451a support
Date: Mon, 11 Mar 2024 09:13:17 +0000	[thread overview]
Message-ID: <DB9PR04MB9377CEF84C01A99C396B936AE1242@DB9PR04MB9377.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <6027895.lOV4Wx5bFT@steina-w>


> -----Original Message-----
> From: Alexander Stein <alexander.stein@ew.tq-group.com>
> Sent: 2024年3月11日 17:09
> To: Jacky Bai <ping.bai@nxp.com>; lgirdwood@gmail.com;
> broonie@kernel.org; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de;
> linux-arm-kernel@lists.infradead.org
> Cc: kernel@pengutronix.de; festevam@gmail.com; dl-linux-imx
> <linux-imx@nxp.com>; devicetree@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> imx@lists.linux.dev; Joy Zou <joy.zou@nxp.com>
> Subject: [EXT] Re: [PATCH v2 2/3] regulator: pca9450: add pca9451a support
>
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
>
>
> Hi,
>
> thanks for the update.
>
> Am Montag, 11. März 2024, 09:47:56 CET schrieb Joy Zou:
> > Adding support for pmic pca9451a.
> >
> > This patch support old and new pmic pca9451a. The new pmic trimed
> BUCK1.
> > The default value of Toff_Deb is used to distinguish the old and new pmic.
>
> This section doesn't apply anymore. Please remove it.
>
> > Signed-off-by: Joy Zou <joy.zou@nxp.com>
> > ---
> > Changes in v2:
> > 1. remove the old part support because the old part only is used for
> > sample and is diffcult to distinguish old and new part. so drop old part.
> > 2. remove the unnecessary marco definition in the file pca9450.h.
> > ---
> >  drivers/regulator/pca9450-regulator.c | 197
> +++++++++++++++++++++++++-
> >  include/linux/regulator/pca9450.h     |   1 +
> >  2 files changed, 195 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/regulator/pca9450-regulator.c
> > b/drivers/regulator/pca9450-regulator.c
> > index 2ab365d2749f..50c324e275b5 100644
> > --- a/drivers/regulator/pca9450-regulator.c
> > +++ b/drivers/regulator/pca9450-regulator.c
> > @@ -103,7 +103,15 @@ static const struct regulator_ops
> pca9450_ldo_regulator_ops = {
> >   * 0.60 to 2.1875V (12.5mV step)
> >   */
> >  static const struct linear_range pca9450_dvs_buck_volts[] = {
> > -     REGULATOR_LINEAR_RANGE(600000,  0x00, 0x7F, 12500),
> > +     REGULATOR_LINEAR_RANGE(600000, 0x00, 0x7F, 12500), };
>
> That's an unrelated change.
Yeah, I will remove it.
>
> > +/*
> > + * BUCK1/3
> > + * 0.65 to 2.2375V (12.5mV step)
> > + */
> > +static const struct linear_range pca9451a_dvs_buck_volts[] = {
> > +     REGULATOR_LINEAR_RANGE(650000, 0x00, 0x7F, 12500),
> >  };
> >
> >  /*
> > @@ -662,6 +670,178 @@ static const struct pca9450_regulator_desc
> pca9450bc_regulators[] = {
> >       },
> >  };
> >
> > +static const struct pca9450_regulator_desc pca9451a_regulators[] = {
> > +     {
> > +             .desc = {
> > +                     .name = "buck1",
> > +                     .of_match = of_match_ptr("BUCK1"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK1,
> > +                     .ops = &pca9450_dvs_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK1_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9451a_dvs_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9451a_dvs_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK1OUT_DVS0,
> > +                     .vsel_mask = BUCK1OUT_DVS0_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK1CTRL,
> > +                     .enable_mask = BUCK1_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .ramp_mask = BUCK1_RAMP_MASK,
> > +                     .ramp_delay_table =
> pca9450_dvs_buck_ramp_table,
> > +                     .n_ramp_values =
> ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
> > +                     .owner = THIS_MODULE,
> > +                     .of_parse_cb = pca9450_set_dvs_levels,
> > +             },
> > +             .dvs = {
> > +                     .run_reg = PCA9450_REG_BUCK1OUT_DVS0,
> > +                     .run_mask = BUCK1OUT_DVS0_MASK,
> > +                     .standby_reg = PCA9450_REG_BUCK1OUT_DVS1,
> > +                     .standby_mask = BUCK1OUT_DVS1_MASK,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck2",
> > +                     .of_match = of_match_ptr("BUCK2"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK2,
> > +                     .ops = &pca9450_dvs_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK2_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_dvs_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_dvs_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK2OUT_DVS0,
> > +                     .vsel_mask = BUCK2OUT_DVS0_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK2CTRL,
> > +                     .enable_mask = BUCK2_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
> > +                     .ramp_mask = BUCK2_RAMP_MASK,
> > +                     .ramp_delay_table =
> pca9450_dvs_buck_ramp_table,
> > +                     .n_ramp_values =
> ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
> > +                     .owner = THIS_MODULE,
> > +                     .of_parse_cb = pca9450_set_dvs_levels,
> > +             },
> > +             .dvs = {
> > +                     .run_reg = PCA9450_REG_BUCK2OUT_DVS0,
> > +                     .run_mask = BUCK2OUT_DVS0_MASK,
> > +                     .standby_reg = PCA9450_REG_BUCK2OUT_DVS1,
> > +                     .standby_mask = BUCK2OUT_DVS1_MASK,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck4",
> > +                     .of_match = of_match_ptr("BUCK4"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK4,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK4_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK4OUT,
> > +                     .vsel_mask = BUCK4OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK4CTRL,
> > +                     .enable_mask = BUCK4_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck5",
> > +                     .of_match = of_match_ptr("BUCK5"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK5,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK5_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK5OUT,
> > +                     .vsel_mask = BUCK5OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK5CTRL,
> > +                     .enable_mask = BUCK5_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "buck6",
> > +                     .of_match = of_match_ptr("BUCK6"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_BUCK6,
> > +                     .ops = &pca9450_buck_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_BUCK6_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_buck_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_buck_volts),
> > +                     .vsel_reg = PCA9450_REG_BUCK6OUT,
> > +                     .vsel_mask = BUCK6OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_BUCK6CTRL,
> > +                     .enable_mask = BUCK6_ENMODE_MASK,
> > +                     .enable_val = BUCK_ENMODE_ONREQ,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo1",
> > +                     .of_match = of_match_ptr("LDO1"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO1,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO1_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo1_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo1_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO1CTRL,
> > +                     .vsel_mask = LDO1OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO1CTRL,
> > +                     .enable_mask = LDO1_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo4",
> > +                     .of_match = of_match_ptr("LDO4"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO4,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO4_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo34_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo34_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO4CTRL,
> > +                     .vsel_mask = LDO4OUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO4CTRL,
> > +                     .enable_mask = LDO4_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +     {
> > +             .desc = {
> > +                     .name = "ldo5",
> > +                     .of_match = of_match_ptr("LDO5"),
> > +                     .regulators_node = of_match_ptr("regulators"),
> > +                     .id = PCA9450_LDO5,
> > +                     .ops = &pca9450_ldo_regulator_ops,
> > +                     .type = REGULATOR_VOLTAGE,
> > +                     .n_voltages = PCA9450_LDO5_VOLTAGE_NUM,
> > +                     .linear_ranges = pca9450_ldo5_volts,
> > +                     .n_linear_ranges =
> ARRAY_SIZE(pca9450_ldo5_volts),
> > +                     .vsel_reg = PCA9450_REG_LDO5CTRL_H,
> > +                     .vsel_mask = LDO5HOUT_MASK,
> > +                     .enable_reg = PCA9450_REG_LDO5CTRL_H,
> > +                     .enable_mask = LDO5H_EN_MASK,
> > +                     .owner = THIS_MODULE,
> > +             },
> > +     },
> > +};
> > +
> >  static irqreturn_t pca9450_irq_handler(int irq, void *data)  {
> >       struct pca9450 *pca9450 = data;
> > @@ -729,6 +909,10 @@ static int pca9450_i2c_probe(struct i2c_client
> *i2c)
> >               regulator_desc = pca9450bc_regulators;
> >               pca9450->rcnt = ARRAY_SIZE(pca9450bc_regulators);
> >               break;
> > +     case PCA9450_TYPE_PCA9451A:
> > +             regulator_desc = pca9451a_regulators;
> > +             pca9450->rcnt = ARRAY_SIZE(pca9451a_regulators);
> > +             break;
> >       default:
> >               dev_err(&i2c->dev, "Unknown device type");
> >               return -EINVAL;
> > @@ -755,7 +939,8 @@ static int pca9450_i2c_probe(struct i2c_client
> > *i2c)
> >
> >       /* Check your board and dts for match the right pmic */
> >       if (((device_id >> 4) != 0x1 && type == PCA9450_TYPE_PCA9450A)
> ||
> > -         ((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC))
> {
> > +         ((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC)
> ||
> > +         ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A))
> > + {
> >               dev_err(&i2c->dev, "Device id(%x) mismatched\n",
> >                       device_id >> 4);
> >               return -EINVAL;
> > @@ -767,6 +952,7 @@ static int pca9450_i2c_probe(struct i2c_client
> *i2c)
> >               const struct pca9450_regulator_desc *r;
> >
> >               r = &regulator_desc[i];
> > +
>
> Please don't add this empty line. Seems like a leftover from v1.
>
Okay, will remove the empty line.
Thank you very much.
BR
Joy Zou
> Thanks and best regards,
> Alexander
>
> >               desc = &r->desc;
> >
> >               config.regmap = pca9450->regmap; @@ -846,7 +1032,8
> @@
> > static int pca9450_i2c_probe(struct i2c_client *i2c)
> >       }
> >
> >       dev_info(&i2c->dev, "%s probed.\n",
> > -             type == PCA9450_TYPE_PCA9450A ? "pca9450a" :
> "pca9450bc");
> > +             type == PCA9450_TYPE_PCA9450A ? "pca9450a" :
> > +             (type == PCA9450_TYPE_PCA9451A ? "pca9451a" :
> > + "pca9450bc"));
> >
> >       return 0;
> >  }
> > @@ -864,6 +1051,10 @@ static const struct of_device_id
> pca9450_of_match[] = {
> >               .compatible = "nxp,pca9450c",
> >               .data = (void *)PCA9450_TYPE_PCA9450BC,
> >       },
> > +     {
> > +             .compatible = "nxp,pca9451a",
> > +             .data = (void *)PCA9450_TYPE_PCA9451A,
> > +     },
> >       { }
> >  };
> >  MODULE_DEVICE_TABLE(of, pca9450_of_match); diff --git
> > a/include/linux/regulator/pca9450.h
> > b/include/linux/regulator/pca9450.h
> > index 505c908dbb81..243633c8dceb 100644
> > --- a/include/linux/regulator/pca9450.h
> > +++ b/include/linux/regulator/pca9450.h
> > @@ -9,6 +9,7 @@
> >  enum pca9450_chip_type {
> >       PCA9450_TYPE_PCA9450A = 0,
> >       PCA9450_TYPE_PCA9450BC,
> > +     PCA9450_TYPE_PCA9451A,
> >       PCA9450_TYPE_AMOUNT,
> >  };
> >
> >
>
>
> --
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> http://www.t/
> q-group.com%2F&data=05%7C02%7Cjoy.zou%40nxp.com%7C127cf372317a
> 45bcefe508dc41aaeb74%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7
> C0%7C638457449552418123%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC
> 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C
> %7C%7C&sdata=3EUbZ%2B8PQtMQ%2F4hC71tn1T3cqnQwGBwnaQf3xleDq
> %2FQ%3D&reserved=0
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-03-11  9:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-11  8:47 [PATCH v2 0/3] add pmic pca9451a support Joy Zou
2024-03-11  8:47 ` Joy Zou
2024-03-11  8:47 ` [PATCH v2 1/3] regulator: dt-bindings: pca9450: add " Joy Zou
2024-03-11  8:47   ` Joy Zou
2024-03-11 10:00   ` Krzysztof Kozlowski
2024-03-11 10:00     ` Krzysztof Kozlowski
2024-03-11 10:04     ` [EXT] " Joy Zou
2024-03-11 10:04       ` Joy Zou
2024-03-11  8:47 ` [PATCH v2 2/3] regulator: " Joy Zou
2024-03-11  8:47   ` Joy Zou
2024-03-11  9:09   ` Alexander Stein
2024-03-11  9:09     ` Alexander Stein
2024-03-11  9:13     ` Joy Zou [this message]
2024-03-11  9:13       ` [EXT] " Joy Zou
2024-03-11 13:28     ` Mark Brown
2024-03-11 13:28       ` Mark Brown
2024-03-12  2:08       ` [EXT] " Joy Zou
2024-03-12  2:08         ` Joy Zou
2024-03-11  8:47 ` [PATCH v2 3/3] arm64: dts: imx93-11x11-evk: " Joy Zou
2024-03-11  8:47   ` Joy Zou
2024-03-11  8:51   ` Marco Felsch
2024-03-11  8:51     ` Marco Felsch
2024-03-11  8:57     ` [EXT] " Joy Zou
2024-03-11  8:57       ` Joy Zou

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=DB9PR04MB9377CEF84C01A99C396B936AE1242@DB9PR04MB9377.eurprd04.prod.outlook.com \
    --to=joy.zou@nxp.com \
    --cc=alexander.stein@ew.tq-group.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ping.bai@nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    /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.