[PATCH 1/4] ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators

Andreas Kemnade posted 4 patches 1 month, 4 weeks ago
There is a newer version of this series
[PATCH 1/4] ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators
Posted by Andreas Kemnade 1 month, 4 weeks ago
To properly have things running after cold boot, define
GPIO regulators. Naming is based on board file.

In the vendor kernel they are enabled in a function
called bt2ws_dcdc_init() if the system is not booted just
to charge the battery.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 .../boot/dts/ti/omap/omap4-epson-embt2ws.dts  | 73 +++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
index 339e52ba3614..d6b0abba19f6 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
@@ -29,6 +29,42 @@ backlight-right {
 		power-supply = <&unknown_supply>;
 	};
 
+	cb_v18: cb-v18 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&cb_v18_pins>;
+		compatible = "regulator-fixed";
+		regulator-name = "cb_v18";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+		gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cb_v33: cb-v33 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&cb_v33_pins>;
+		compatible = "regulator-fixed";
+		regulator-name = "cb_v33";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+		gpio = <&gpio6 30 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cb-v50 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&cb_v50_pins>;
+		compatible = "regulator-fixed";
+		regulator-name = "cb_v50";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	chosen {
 		stdout-path = &uart3;
 	};
@@ -46,6 +82,19 @@ key-lock {
 		};
 	};
 
+	lb_v50: lb-v50 {
+		/* required for many things at the head (probably indirectly) */
+		pinctrl-names = "default";
+		pinctrl-0 = <&lb_v50_pins>;
+		compatible = "regulator-fixed";
+		regulator-name = "lb_v50";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	unknown_supply: unknown-supply {
 		compatible = "regulator-fixed";
 		regulator-name = "unknown";
@@ -336,6 +385,24 @@ OMAP4_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE3) /* gpio25 */
 		>;
 	};
 
+	cb_v18_pins: pinmux-cb-v18-pins {
+		pinctrl-single,pins = <
+			OMAP4_IOPAD(0x1d0, PIN_OUTPUT | MUX_MODE3) /* gpio28 */
+		>;
+	};
+
+	cb_v33_pins: pinmux-cb-v33-pins {
+		pinctrl-single,pins = <
+			OMAP4_IOPAD(0x1d2, PIN_OUTPUT | MUX_MODE3) /* gpio190 */
+		>;
+	};
+
+	cb_v50_pins: pinmux-cb-v50-pins {
+		pinctrl-single,pins = <
+			OMAP4_IOPAD(0x1d4, PIN_OUTPUT | MUX_MODE3) /* gpio191 */
+		>;
+	};
+
 	gpio_keys_pins: pinmux-gpio-key-pins {
 		pinctrl-single,pins = <
 			OMAP4_IOPAD(0x56, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio35 */
@@ -387,6 +454,12 @@ OMAP4_IOPAD(0x005c, PIN_OUTPUT | MUX_MODE1)
 		>;
 	};
 
+	lb_v50_pins: pinmux-lb-v50-pins {
+		pinctrl-single,pins = <
+			OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE3) /* gpio27 */
+		>;
+	};
+
 	mcbsp2_pins: pinmux-mcbsp2-pins {
 		pinctrl-single,pins = <
 			OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0)       /* abe_mcbsp2_clkx */
-- 
2.39.5
Re: [PATCH 1/4] ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators
Posted by Roger Quadros 1 month, 3 weeks ago

On 01/10/2024 00:30, Andreas Kemnade wrote:
> To properly have things running after cold boot, define
> GPIO regulators. Naming is based on board file.
> 
> In the vendor kernel they are enabled in a function
> called bt2ws_dcdc_init() if the system is not booted just
> to charge the battery.
> 
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
>  .../boot/dts/ti/omap/omap4-epson-embt2ws.dts  | 73 +++++++++++++++++++
>  1 file changed, 73 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
> index 339e52ba3614..d6b0abba19f6 100644
> --- a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
> +++ b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
> @@ -29,6 +29,42 @@ backlight-right {
>  		power-supply = <&unknown_supply>;
>  	};
>  
> +	cb_v18: cb-v18 {

https://devicetree-specification.readthedocs.io/en/v0.3/devicetree-basics.html#generic-names-recommendation


So regulator@n
where n is some index if it can't be address.

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&cb_v18_pins>;
> +		compatible = "regulator-fixed";
> +		regulator-name = "cb_v18";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-always-on;
> +		gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cb_v33: cb-v33 {
here

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&cb_v33_pins>;
> +		compatible = "regulator-fixed";
> +		regulator-name = "cb_v33";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-always-on;
> +		gpio = <&gpio6 30 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cb-v50 {
here too

> +		pinctrl-names = "default";
> +		pinctrl-0 = <&cb_v50_pins>;
> +		compatible = "regulator-fixed";
> +		regulator-name = "cb_v50";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
>  	chosen {
>  		stdout-path = &uart3;
>  	};
> @@ -46,6 +82,19 @@ key-lock {
>  		};
>  	};
>  
> +	lb_v50: lb-v50 {
and here as well

> +		/* required for many things at the head (probably indirectly) */
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&lb_v50_pins>;
> +		compatible = "regulator-fixed";
> +		regulator-name = "lb_v50";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
>  	unknown_supply: unknown-supply {
>  		compatible = "regulator-fixed";
>  		regulator-name = "unknown";
> @@ -336,6 +385,24 @@ OMAP4_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE3) /* gpio25 */
>  		>;
>  	};
>  
> +	cb_v18_pins: pinmux-cb-v18-pins {
> +		pinctrl-single,pins = <
> +			OMAP4_IOPAD(0x1d0, PIN_OUTPUT | MUX_MODE3) /* gpio28 */
> +		>;
> +	};
> +
> +	cb_v33_pins: pinmux-cb-v33-pins {
> +		pinctrl-single,pins = <
> +			OMAP4_IOPAD(0x1d2, PIN_OUTPUT | MUX_MODE3) /* gpio190 */
> +		>;
> +	};
> +
> +	cb_v50_pins: pinmux-cb-v50-pins {
> +		pinctrl-single,pins = <
> +			OMAP4_IOPAD(0x1d4, PIN_OUTPUT | MUX_MODE3) /* gpio191 */
> +		>;
> +	};
> +
>  	gpio_keys_pins: pinmux-gpio-key-pins {
>  		pinctrl-single,pins = <
>  			OMAP4_IOPAD(0x56, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio35 */
> @@ -387,6 +454,12 @@ OMAP4_IOPAD(0x005c, PIN_OUTPUT | MUX_MODE1)
>  		>;
>  	};
>  
> +	lb_v50_pins: pinmux-lb-v50-pins {
> +		pinctrl-single,pins = <
> +			OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE3) /* gpio27 */
> +		>;
> +	};
> +
>  	mcbsp2_pins: pinmux-mcbsp2-pins {
>  		pinctrl-single,pins = <
>  			OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0)       /* abe_mcbsp2_clkx */

-- 
cheers,
-roger
Re: [PATCH 1/4] ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators
Posted by Andreas Kemnade 1 month, 3 weeks ago
Am Fri, 4 Oct 2024 10:24:32 +0300
schrieb Roger Quadros <rogerq@kernel.org>:

> On 01/10/2024 00:30, Andreas Kemnade wrote:
> > To properly have things running after cold boot, define
> > GPIO regulators. Naming is based on board file.
> > 
> > In the vendor kernel they are enabled in a function
> > called bt2ws_dcdc_init() if the system is not booted just
> > to charge the battery.
> > 
> > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> > ---
> >  .../boot/dts/ti/omap/omap4-epson-embt2ws.dts  | 73
> > +++++++++++++++++++ 1 file changed, 73 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
> > b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts index
> > 339e52ba3614..d6b0abba19f6 100644 ---
> > a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts +++
> > b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts @@ -29,6 +29,42
> > @@ backlight-right { power-supply = <&unknown_supply>;
> >  	};
> >  
> > +	cb_v18: cb-v18 {  
> 
> https://devicetree-specification.readthedocs.io/en/v0.3/devicetree-basics.html#generic-names-recommendation
> 
> 
> So regulator@n
> where n is some index if it can't be address.
> 
No, no @n. The above link says: "If the node has no reg property, the
@unit-address must be omitted and the node-name alone differentiates
the node from other nodes at the same level in the tree." So
probably regulator-cb-v18.

Regards,
Andreas
Re: [PATCH 1/4] ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators
Posted by Roger Quadros 1 month, 3 weeks ago

On 04/10/2024 10:41, Andreas Kemnade wrote:
> Am Fri, 4 Oct 2024 10:24:32 +0300
> schrieb Roger Quadros <rogerq@kernel.org>:
> 
>> On 01/10/2024 00:30, Andreas Kemnade wrote:
>>> To properly have things running after cold boot, define
>>> GPIO regulators. Naming is based on board file.
>>>
>>> In the vendor kernel they are enabled in a function
>>> called bt2ws_dcdc_init() if the system is not booted just
>>> to charge the battery.
>>>
>>> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
>>> ---
>>>  .../boot/dts/ti/omap/omap4-epson-embt2ws.dts  | 73
>>> +++++++++++++++++++ 1 file changed, 73 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
>>> b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts index
>>> 339e52ba3614..d6b0abba19f6 100644 ---
>>> a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts +++
>>> b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts @@ -29,6 +29,42
>>> @@ backlight-right { power-supply = <&unknown_supply>;
>>>  	};
>>>  
>>> +	cb_v18: cb-v18 {  
>>
>> https://devicetree-specification.readthedocs.io/en/v0.3/devicetree-basics.html#generic-names-recommendation
>>
>>
>> So regulator@n
>> where n is some index if it can't be address.
>>
> No, no @n. The above link says: "If the node has no reg property, the
> @unit-address must be omitted and the node-name alone differentiates
> the node from other nodes at the same level in the tree." So
> probably regulator-cb-v18.

Yes, I agree.

-- 
cheers,
-roger