Message ID | 20240930213008.159647-2-andreas@kemnade.info |
---|---|
State | New |
Headers | show |
Series | ARM: dts: omap: omap4-epson-embt2ws: misc gpio definitions | expand |
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 */
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
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.
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 */
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(+)