Message ID | 20230225113712.340612-4-alistair@alistair23.me (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | imx7d-remarkable2: Enable cyttsp5 and rohm,bd71815 | expand |
Hi Alistair, On 2/25/23 13:37, Alistair Francis wrote: > Add support for the rohm,bd71815 power controller controller for the > reMarkable 2. > > Signed-off-by: Alistair Francis <alistair@alistair23.me> > --- > arch/arm/boot/dts/imx7d-remarkable2.dts | 158 ++++++++++++++++++++++++ > 1 file changed, 158 insertions(+) > > diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts > index 288fc8611117..9ecb733545cc 100644 > --- a/arch/arm/boot/dts/imx7d-remarkable2.dts > +++ b/arch/arm/boot/dts/imx7d-remarkable2.dts > @@ -91,6 +91,10 @@ wifi_pwrseq: wifi_pwrseq { > }; > }; > > +&cpu0 { > + cpu-supply = <&buck1_reg>; > +}; > + > &clks { > assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>, > <&clks IMX7D_CLKO2_ROOT_DIV>; > @@ -118,6 +122,147 @@ wacom_digitizer: digitizer@9 { > }; > }; > > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > + > + bd71815: pmic@4b { > + compatible = "rohm,bd71815"; > + reg = <0x4b>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_bd71815>; > + interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */ > + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; > + gpio-controller; > + clocks = <&clks IMX7D_CLKO2_ROOT_SRC>; > + clock-output-names = "bd71815-32k-out"; > + #clock-cells = <0>; > + #gpio-cells = <1>; > + > + regulators { > + #address-cells = <1>; > + #size-cells = <0>; > + > + buck1_reg: regulator@0 { > + reg = <0>; > + regulator-compatible = "buck1"; I'm sure you have learned to regard my comments with certain care ;) (I think it was you for whom I gave an advice - which resulted a board to be bricked :| So, please treat my comment as if I did not know what I am talking about). Anyways, I believe the "regulator-compatible" is deprecated and should no longer be used to match the node with the regulator? Instead, the regulator node name itself should be used for the matching. ref. https://elixir.bootlin.com/linux/latest/source/drivers/regulator/of_regulator.c#L380 I don't think the regulator-compatible can even be found from the regulator.yaml binding list... With this remark - (and what ever it is worth): Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
On Sat, Feb 25, 2023 at 8:37 AM Alistair Francis <alistair@alistair23.me> wrote: > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > + > + bd71815: pmic@4b { > + compatible = "rohm,bd71815"; > + reg = <0x4b>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_bd71815>; > + interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */ > + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; > + gpio-controller; > + clocks = <&clks IMX7D_CLKO2_ROOT_SRC>; > + clock-output-names = "bd71815-32k-out"; > + #clock-cells = <0>; > + #gpio-cells = <1>; The binding document says #gpio-cells = <2>; > + > + regulators { > + #address-cells = <1>; > + #size-cells = <0>; > + > + buck1_reg: regulator@0 { > + reg = <0>; The regulator@0 and reg should not be present. Please check Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
On Sun, Feb 26, 2023 at 12:22 AM Matti Vaittinen <mazziesaccount@gmail.com> wrote: > > Hi Alistair, > > On 2/25/23 13:37, Alistair Francis wrote: > > Add support for the rohm,bd71815 power controller controller for the > > reMarkable 2. > > > > Signed-off-by: Alistair Francis <alistair@alistair23.me> > > --- > > arch/arm/boot/dts/imx7d-remarkable2.dts | 158 ++++++++++++++++++++++++ > > 1 file changed, 158 insertions(+) > > > > diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts > > index 288fc8611117..9ecb733545cc 100644 > > --- a/arch/arm/boot/dts/imx7d-remarkable2.dts > > +++ b/arch/arm/boot/dts/imx7d-remarkable2.dts > > @@ -91,6 +91,10 @@ wifi_pwrseq: wifi_pwrseq { > > }; > > }; > > > > +&cpu0 { > > + cpu-supply = <&buck1_reg>; > > +}; > > + > > &clks { > > assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>, > > <&clks IMX7D_CLKO2_ROOT_DIV>; > > @@ -118,6 +122,147 @@ wacom_digitizer: digitizer@9 { > > }; > > }; > > > > +&i2c2 { > > + clock-frequency = <100000>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_i2c2>; > > + status = "okay"; > > + > > + bd71815: pmic@4b { > > + compatible = "rohm,bd71815"; > > + reg = <0x4b>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_bd71815>; > > + interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */ > > + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; > > + gpio-controller; > > + clocks = <&clks IMX7D_CLKO2_ROOT_SRC>; > > + clock-output-names = "bd71815-32k-out"; > > + #clock-cells = <0>; > > + #gpio-cells = <1>; > > + > > + regulators { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + buck1_reg: regulator@0 { > > + reg = <0>; > > + regulator-compatible = "buck1"; > > I'm sure you have learned to regard my comments with certain care ;) (I > think it was you for whom I gave an advice - which resulted a board to > be bricked :| So, please treat my comment as if I did not know what I am > talking about). That was me! The board wasn't bricked though, luckily as it's my only device. It took a month of full battery discharge cycles but I managed to replace the device tree with a working one :) > > Anyways, I believe the "regulator-compatible" is deprecated and should > no longer be used to match the node with the regulator? Instead, the > regulator node name itself should be used for the matching. > > ref. > https://elixir.bootlin.com/linux/latest/source/drivers/regulator/of_regulator.c#L380 > > I don't think the regulator-compatible can even be found from the > regulator.yaml binding list... You're right. Thanks for that, I have removed them and replaced them with "regulator-name" to match the documentation. > > With this remark - (and what ever it is worth): > Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com> Thanks! Alistair > > -- > Matti Vaittinen > Linux kernel developer at ROHM Semiconductors > Oulu Finland > > ~~ When things go utterly wrong vim users can always type :help! ~~ >
On Sun, Feb 26, 2023 at 6:37 AM Fabio Estevam <festevam@gmail.com> wrote: > > On Sat, Feb 25, 2023 at 8:37 AM Alistair Francis <alistair@alistair23.me> wrote: > > > +&i2c2 { > > + clock-frequency = <100000>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_i2c2>; > > + status = "okay"; > > + > > + bd71815: pmic@4b { > > + compatible = "rohm,bd71815"; > > + reg = <0x4b>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_bd71815>; > > + interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */ > > + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; > > + gpio-controller; > > + clocks = <&clks IMX7D_CLKO2_ROOT_SRC>; > > + clock-output-names = "bd71815-32k-out"; > > + #clock-cells = <0>; > > + #gpio-cells = <1>; > > The binding document says #gpio-cells = <2>; Fixed! > > > + > > + regulators { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + buck1_reg: regulator@0 { > > + reg = <0>; > > The regulator@0 and reg should not be present. Fixed > > Please check Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml Thanks, I double checked my latest code against the bindings. Alistair
diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts index 288fc8611117..9ecb733545cc 100644 --- a/arch/arm/boot/dts/imx7d-remarkable2.dts +++ b/arch/arm/boot/dts/imx7d-remarkable2.dts @@ -91,6 +91,10 @@ wifi_pwrseq: wifi_pwrseq { }; }; +&cpu0 { + cpu-supply = <&buck1_reg>; +}; + &clks { assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>, <&clks IMX7D_CLKO2_ROOT_DIV>; @@ -118,6 +122,147 @@ wacom_digitizer: digitizer@9 { }; }; +&i2c2 { + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + status = "okay"; + + bd71815: pmic@4b { + compatible = "rohm,bd71815"; + reg = <0x4b>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_bd71815>; + interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */ + interrupts = <16 IRQ_TYPE_LEVEL_LOW>; + gpio-controller; + clocks = <&clks IMX7D_CLKO2_ROOT_SRC>; + clock-output-names = "bd71815-32k-out"; + #clock-cells = <0>; + #gpio-cells = <1>; + + regulators { + #address-cells = <1>; + #size-cells = <0>; + + buck1_reg: regulator@0 { + reg = <0>; + regulator-compatible = "buck1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + }; + + buck2_reg: regulator@1 { + reg = <1>; + regulator-compatible = "buck2"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + }; + + buck3_reg: regulator@2 { + reg = <2>; + regulator-compatible = "buck3"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <2700000>; + regulator-boot-on; + regulator-always-on; + }; + + buck4_reg: regulator@3 { + reg = <3>; + regulator-compatible = "buck4"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1850000>; + regulator-boot-on; + regulator-always-on; + }; + + buck5_reg: regulator@4 { + reg = <4>; + regulator-compatible = "buck5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo1_reg: regulator@5 { + reg = <5>; + regulator-compatible = "ldo1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: regulator@6 { + reg = <6>; + regulator-compatible = "ldo2"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo3_reg: regulator@7 { + reg = <7>; + regulator-compatible = "ldo3"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo4_reg: regulator@8 { + reg = <8>; + regulator-compatible = "ldo4"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo5_reg: regulator@9 { + reg = <9>; + regulator-compatible = "ldo5"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + dvref_reg: regulator@a { + reg = <0xa>; + regulator-compatible = "ldodvref"; + regulator-boot-on; + regulator-always-on; + }; + + lpsr_reg: regulator@b { + reg = <0xb>; + regulator-compatible = "ldolpsr"; + regulator-boot-on; + regulator-always-on; + }; + + wled_reg: regulator@c { + reg = <0xc>; + regulator-compatible = "wled"; + regulator-min-microamp = <10>; + regulator-max-microamp = <25000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +}; + &i2c3 { clock-frequency = <100000>; pinctrl-names = "default"; @@ -292,6 +437,12 @@ MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x00000034 /* WACOM INT */ }; &iomuxc { + pinctrl_bd71815: bd71815grp { + fsl,pins = < + MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16 0x59 + >; + }; + pinctrl_brcm_reg: brcmreggrp { fsl,pins = < /* WIFI_PWR_EN */ @@ -322,6 +473,13 @@ MX7D_PAD_I2C1_SCL__I2C1_SCL 0x4000007f >; }; + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f + MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f + >; + }; + pinctrl_i2c3: i2c3grp { fsl,pins = < MX7D_PAD_I2C3_SDA__I2C3_SDA 0x4000007f
Add support for the rohm,bd71815 power controller controller for the reMarkable 2. Signed-off-by: Alistair Francis <alistair@alistair23.me> --- arch/arm/boot/dts/imx7d-remarkable2.dts | 158 ++++++++++++++++++++++++ 1 file changed, 158 insertions(+)