Message ID | 1645182064-15843-6-git-send-email-quic_c_skakit@quicinc.com |
---|---|
State | New |
Headers | show |
Series | [V7,1/5] dt-bindings: mfd: pm8008: Add pm8008 regulators | expand |
Quoting Satya Priya Kakitapalli (Temp) (2022-02-28 06:25:06) > > On 2/19/2022 7:31 AM, Stephen Boyd wrote: > > Quoting Satya Priya (2022-02-18 03:01:03) > > >> + pins = "gpio4"; > >> + function = "normal"; > >> + bias-disable; > >> + output-high; > > Is this a reset signal? Should the driver be deasserting the reset when > > it is ready? That could be the same time the gpio is acquired. > > > I didn't get your question exactly.. hope this answers your query > > The pm8008 chip needs this gpio to be toggled , in order to come out of > reset and start any transactions.. > > Please let me know if you have more queries Yes that answers it for me. Thanks. This is a reset gpio and should be a DT property like reset-gpios = <&pm8350c_gpios 4 GPIO_ACTIVE_HIGH> in the pm8008 node. When the driver probes it should get the gpio and do any toggling to take it out of reset. It shouldn't be done through pinconf settings.
On 3/1/2022 2:06 AM, Stephen Boyd wrote: > Quoting Satya Priya Kakitapalli (Temp) (2022-02-28 06:25:06) >> On 2/19/2022 7:31 AM, Stephen Boyd wrote: >>> Quoting Satya Priya (2022-02-18 03:01:03) >>>> + pins = "gpio4"; >>>> + function = "normal"; >>>> + bias-disable; >>>> + output-high; >>> Is this a reset signal? Should the driver be deasserting the reset when >>> it is ready? That could be the same time the gpio is acquired. >> >> I didn't get your question exactly.. hope this answers your query >> >> The pm8008 chip needs this gpio to be toggled , in order to come out of >> reset and start any transactions.. >> >> Please let me know if you have more queries > Yes that answers it for me. Thanks. > > This is a reset gpio and should be a DT property like > > reset-gpios = <&pm8350c_gpios 4 GPIO_ACTIVE_HIGH> > > in the pm8008 node. When the driver probes it should get the gpio and > do any toggling to take it out of reset. It shouldn't be done through > pinconf settings. Okay, IIUC, I have to remove the output-high here and add reset-gpios in pm8008 DT node. And then add below code in pm8008 mfd driver probe + chip->reset_gpio = devm_gpiod_get(chip->dev, "reset", GPIOD_OUT_HIGH); + if (IS_ERR(chip->reset_gpio)) { + dev_err(chip->dev, "failed to acquire reset gpio\n"); + return PTR_ERR(chip->reset_gpio); + } + gpiod_set_value(chip->reset_gpio, 1); This is working for me, Please let me know if I'm missing something.
Quoting Satya Priya Kakitapalli (Temp) (2022-03-07 06:49:31) > > On 3/1/2022 2:06 AM, Stephen Boyd wrote: > > Quoting Satya Priya Kakitapalli (Temp) (2022-02-28 06:25:06) > >> On 2/19/2022 7:31 AM, Stephen Boyd wrote: > >>> Quoting Satya Priya (2022-02-18 03:01:03) > >>>> + pins = "gpio4"; > >>>> + function = "normal"; > >>>> + bias-disable; > >>>> + output-high; > >>> Is this a reset signal? Should the driver be deasserting the reset when > >>> it is ready? That could be the same time the gpio is acquired. > >> > >> I didn't get your question exactly.. hope this answers your query > >> > >> The pm8008 chip needs this gpio to be toggled , in order to come out of > >> reset and start any transactions.. > >> > >> Please let me know if you have more queries > > Yes that answers it for me. Thanks. > > > > This is a reset gpio and should be a DT property like > > > > reset-gpios = <&pm8350c_gpios 4 GPIO_ACTIVE_HIGH> > > > > in the pm8008 node. When the driver probes it should get the gpio and > > do any toggling to take it out of reset. It shouldn't be done through > > pinconf settings. > > > Okay, IIUC, I have to remove the output-high here and add reset-gpios > in pm8008 DT node. And then add below code in pm8008 mfd driver probe > > + chip->reset_gpio = devm_gpiod_get(chip->dev, "reset", > GPIOD_OUT_HIGH); > + if (IS_ERR(chip->reset_gpio)) { > + dev_err(chip->dev, "failed to acquire reset > gpio\n"); > + return PTR_ERR(chip->reset_gpio); > + } > + gpiod_set_value(chip->reset_gpio, 1); > > This is working for me, Please let me know if I'm missing something. > Yep looks good to me.
diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi b/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi index ecbf2b8..371ad19 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi @@ -263,6 +263,62 @@ }; }; +&i2c1 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + #include "pm8008.dtsi" +}; + +&pm8008_infra { + pinctrl-names = "default"; + pinctrl-0 = <&pm8008_active>; +}; + +&pm8008_regulators { + vdd_l1_l2-supply = <&vreg_s8b_1p2>; + vdd_l3_l4-supply = <&vreg_s1b_1p8>; + vdd_l5-supply = <&vreg_bob>; + vdd_l6-supply = <&vreg_bob>; + vdd_l7-supply = <&vreg_bob>; +}; + +&pm8008_l1 { + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1300000>; +}; + +&pm8008_l2 { + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1250000>; +}; + +&pm8008_l3 { + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <3000000>; +}; + +&pm8008_l4 { + regulator-min-microvolt = <1504000>; + regulator-max-microvolt = <1600000>; +}; + +&pm8008_l5 { + regulator-min-microvolt = <2600000>; + regulator-max-microvolt = <3000000>; +}; + +&pm8008_l6 { + regulator-min-microvolt = <2600000>; + regulator-max-microvolt = <3000000>; +}; + +&pm8008_l7 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3544000>; +}; + &qfprom { vcc-supply = <&vreg_l1c_1p8>; }; @@ -375,6 +431,16 @@ drive-strength = <2>; }; +&pm8350c_gpios { + pm8008_active: pm8008_active { + pins = "gpio4"; + function = "normal"; + bias-disable; + output-high; + power-source = <0>; + }; +}; + &qspi_cs0 { bias-disable; };
Add pm8008_infra and pm8008_regulators support for sc7280 idp. Signed-off-by: Satya Priya <quic_c_skakit@quicinc.com> --- Changes in V2: - As per Stephen's comments, replaced '_' with '-' for node names. Changes in V3: - Changed the regulator node names as l1, l2 etc - Changed "pm8008-regulators" to "regulators" - Changed "qcom,min-dropout-voltage" to "regulator-min-dropout-voltage-microvolt" Changes in V4: - Moved all common stuff to pm8008.dtsi and added board specific configurations here. Changes in V5: - Changed the node names as per pm8008.dtsi - Moved supply nodes to chip level (mfd node). - Removed the regulator-mindropout property. Changes in V6: - No changes. Changes in V7: - No Changes. arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+)