mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Satya Priya Kakitapalli (Temp)" <quic_c_skakit@quicinc.com>
To: Stephen Boyd <swboyd@chromium.org>, Lee Jones <lee.jones@linaro.org>
Cc: Mark Brown <broonie@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	<linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <quic_collinsd@quicinc.com>,
	<quic_subbaram@quicinc.com>, <quic_jprakash@quicinc.com>,
	Lee Jones <lee@kernel.org>
Subject: Re: [PATCH V15 6/9] mfd: pm8008: Use i2c_new_dummy_device() API
Date: Tue, 16 Aug 2022 09:11:26 +0530	[thread overview]
Message-ID: <6f9fb41b-abe4-3a98-d19b-7e814ef3f238@quicinc.com> (raw)
In-Reply-To: <CAE-0n507SLeYB7XVzGFk=RO6YjOPoGpux+_N2AyrmL354mQJ-g@mail.gmail.com>

Hi Lee,


Could you please share your thoughts on this?


On 8/9/2022 12:39 AM, Stephen Boyd wrote:
> Quoting Lee Jones (2022-08-05 03:51:39)
>
>>>> I was happy with the previous version of the DT node. That had one node
>>>> for the "pm8008 chip", which is important because it really is one
>>>> package. Why isn't that possible to implement and also register i2c
>>>> devices on the i2c bus for the second address?
>> If devices have different addresses, they should have their own nodes, no?
> There are nodes for the devices at different addresses in the design we
> had settled on earlier.
>
>          pm8008: pmic@8 {
>                  compatible = "qcom,pm8008";
>                  reg = <0x8>;
>                  #address-cells = <2>;
>                  #size-cells = <0>;
>                  #interrupt-cells = <2>;
>
>                  pm8008_l1: ldo1@1,4000 {
>                          compatible = "qcom,pm8008-regulator";
>                          reg = <0x1 0x4000>;
>                          regulator-name = "pm8008_ldo1";
>                  };
>
> 		...
>
> 	};
>
> pmic@8 is the i2c device at i2c address 8. ldo1@1,4000 is the i2c device
> at address 9 (8 + 1) with control for ldo1 at register offset 0x4000.
>
> I think your concern is more about the fact that the regulator sub-nodes
> are platform device drivers instead of i2c device drivers. I'm not an
> i2c expert but from what I can tell we only describe one i2c address in
> DT and then do something like this to describe the other i2c addresses
> when one physical chip responds to multiple addresses on the i2c bus.
> See i2c_new_dummy_device() and i2c_new_ancillary_device() kerneldoc for
> slightly more background.
>
> It may need some modifications to the i2c core to make the regulator
> nodes into i2c devices. I suspect the qcom,pm8008 i2c driver needs to
> look at the 'reg' property and translate that to the parent node's reg
> property (8) plus the first cell (1) to determine the i2c device's final
> i2c address. Then the i2c core needs to register i2c devices that are
> bound to the lifetime of the "primary" i2c device (pmic@8). The driver
> for the regulator can parse the second cell of the reg property to
> determine the register offset within that i2c address to use to control
> the regulator. That would make it possible to create an i2c device for
> each regulator node, but I don't think that is correct because the
> second reg property isn't an i2c address, it's a register offset inside
> the i2c address.
>
> It sort of looks like we need to use i2c_new_ancillary_device() here. IF
> we did that the DT would look like this:
>
>          pm8008: pmic@8 {
>                  compatible = "qcom,pm8008";
>                  reg = <0x8>, <0x9>;
> 		reg-names = "core", "regulators";
>                  #address-cells = <2>;
>                  #size-cells = <0>;
>                  #interrupt-cells = <2>;
>
>                  pm8008_l1: ldo1@1,4000 {
>                          compatible = "qcom,pm8008-regulator";
>                          reg = <0x1 0x4000>;
>                          regulator-name = "pm8008_ldo1";
>                  };
>
> 		...
>
> 	};
>
> And a dummy i2c device would be created for i2c address 0x9 bound to the
> dummy i2c driver when we called i2c_new_ancillary_device() with
> "regulators" for the name. The binding of the dummy driver is preventing
> us from binding another i2c driver to the i2c address. Why can't we call
> i2c_new_client_device() but avoid binding a dummy driver to it like
> i2c_new_ancillary_device() does? If that can be done, then the single
> i2c device at 0x9 can be a pm8008-regulators (plural) device that probes
> a single i2c driver that parses the subnodes looking for regulator
> nodes.
>
> Note: There is really one i2c device at address 0x9, that corresponds to
> the regulators, but in DT we need to have one node per regulator so we
> can configure constraints.

  reply	other threads:[~2022-08-16  7:25 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-14  9:48 [PATCH V15 0/9] Add Qualcomm Technologies, Inc. PM8008 regulator driver Satya Priya
2022-06-14  9:48 ` [PATCH V15 1/9] dt-bindings: mfd: pm8008: Add reset-gpios Satya Priya
2022-06-16 20:58   ` Lee Jones
2022-06-14  9:48 ` [PATCH V15 2/9] dt-bindings: mfd: pm8008: Change the address cells Satya Priya
2022-06-16 20:59   ` Lee Jones
2022-06-17 16:34     ` Lee Jones
2022-06-14  9:48 ` [PATCH V15 3/9] dt-bindings: mfd: pm8008: Add regulators for pm8008 Satya Priya
2022-06-16 20:58   ` Lee Jones
2022-06-14  9:48 ` [PATCH V15 4/9] mfd: pm8008: Add reset-gpios Satya Priya
2022-06-16 20:58   ` Lee Jones
2022-06-17 16:34     ` Lee Jones
2022-06-29 18:36   ` Guru Das Srinagesh
2022-06-14  9:48 ` [PATCH V15 5/9] mfd: pm8008: Remove the regmap member from pm8008_data struct Satya Priya
2022-06-16 20:58   ` Lee Jones
2022-06-29 18:35   ` Guru Das Srinagesh
2022-06-14  9:48 ` [PATCH V15 6/9] mfd: pm8008: Use i2c_new_dummy_device() API Satya Priya
2022-06-16 20:57   ` Lee Jones
2022-06-20  5:28     ` Satya Priya Kakitapalli (Temp)
2022-06-20  8:20       ` Lee Jones
2022-06-20 11:07         ` Satya Priya Kakitapalli (Temp)
2022-06-27  5:07           ` Satya Priya Kakitapalli (Temp)
2022-06-27  7:41             ` Lee Jones
2022-06-28  4:53               ` Satya Priya Kakitapalli (Temp)
2022-06-28  7:42                 ` Lee Jones
2022-06-29 10:36                   ` Satya Priya Kakitapalli (Temp)
2022-06-29 15:18                     ` Lee Jones
2022-06-30  9:37                       ` Satya Priya Kakitapalli (Temp)
2022-06-30 10:34                         ` Lee Jones
2022-07-01  6:46                           ` Satya Priya Kakitapalli (Temp)
2022-07-01  7:54                             ` Lee Jones
2022-07-01  8:47                               ` Satya Priya Kakitapalli (Temp)
2022-07-01  9:12                                 ` Lee Jones
     [not found]                                   ` <0481d3cc-4bb9-4969-0232-76ba57ff260d@quicinc.com>
2022-07-04 12:49                                     ` Lee Jones
2022-07-04 12:59                                       ` Satya Priya Kakitapalli (Temp)
2022-07-11 10:31                                       ` Satya Priya Kakitapalli (Temp)
2022-07-12 12:47                                         ` Lee Jones
2022-07-13  5:50                                           ` Satya Priya Kakitapalli (Temp)
2022-07-13 13:14                                             ` Mark Brown
2022-07-22  6:31                                           ` Satya Priya Kakitapalli (Temp)
2022-07-27  1:19                                             ` Stephen Boyd
     [not found]                                               ` <52039cd1-4390-7abb-d296-0eb7ac0c3b15@quicinc.com>
2022-08-05 10:51                                                 ` Lee Jones
2022-08-08 19:09                                                   ` Stephen Boyd
2022-08-16  3:41                                                     ` Satya Priya Kakitapalli (Temp) [this message]
2022-09-28 10:20                                                     ` Lee Jones
2022-09-29  1:20                                                       ` Stephen Boyd
2022-09-29 18:01                                                         ` Lee Jones
2022-10-03 18:47                                                           ` Stephen Boyd
2022-10-04 11:41                                                             ` Lee Jones
2022-06-14  9:48 ` [PATCH V15 7/9] regulator: Add a regulator driver for the PM8008 PMIC Satya Priya
2022-06-14 20:36   ` Stephen Boyd
2022-06-14  9:48 ` [PATCH V15 8/9] arm64: dts: qcom: pm8008: Add base dts file Satya Priya
2022-06-14  9:48 ` [PATCH V15 9/9] arm64: dts: qcom: sc7280: Add pm8008 support for sc7280-idp Satya Priya
2023-03-17  8:06 ` [PATCH V15 0/9] Add Qualcomm Technologies, Inc. PM8008 regulator driver Luca Weiss
2023-07-07  8:54   ` Luca Weiss

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=6f9fb41b-abe4-3a98-d19b-7e814ef3f238@quicinc.com \
    --to=quic_c_skakit@quicinc.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lee@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_collinsd@quicinc.com \
    --cc=quic_jprakash@quicinc.com \
    --cc=quic_subbaram@quicinc.com \
    --cc=robh+dt@kernel.org \
    --cc=swboyd@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®