* [PATCH 01/13] arm: dts: s5pv210: Add helper define for sleep gpio config [not found] <20200426183604.28494-1-xc-racer2@live.ca> @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration Jonathan Bakker ` (13 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker To simplify writing of sleep gpio configs, add a common helper similar to what is present for other Samsung CPUs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi index 7f0c9d447871..609f323d0805 100644 --- a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi +++ b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi @@ -18,6 +18,13 @@ #include <dt-bindings/pinctrl/samsung.h> +#define PIN_SLP(_pin, _mode, _pull) \ + _pin { \ + samsung,pins = #_pin; \ + samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>; \ + samsung,pin-pud-pdn = <S3C64XX_PIN_PULL_ ##_pull>; \ + } + &pinctrl0 { gpa0: gpa0 { gpio-controller; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration [not found] <20200426183604.28494-1-xc-racer2@live.ca> 2020-04-26 18:35 ` [PATCH 01/13] arm: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-28 10:02 ` Krzysztof Kozlowski 2020-04-26 18:35 ` [PATCH 03/13] arm: dts: s5pv210: galaxys: " Jonathan Bakker ` (12 subsequent siblings) 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker In order to minimize leakage current during sleep, set a config for sleep GPIOs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-fascinate4g.dts | 242 ++++++++++++++++++++++ 1 file changed, 242 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index 07a8d9bbe5b8..94dcb9b64b9a 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -36,3 +36,245 @@ }; }; }; + +&pinctrl0 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep_cfg>; + + sleep_cfg: sleep-cfg { + PIN_SLP(gpa0-0, PREV, NONE); + PIN_SLP(gpa0-1, PREV, NONE); + PIN_SLP(gpa0-2, PREV, NONE); + PIN_SLP(gpa0-3, OUT1, NONE); + PIN_SLP(gpa0-4, PREV, NONE); + PIN_SLP(gpa0-5, PREV, NONE); + PIN_SLP(gpa0-6, PREV, NONE); + PIN_SLP(gpa0-7, PREV, NONE); + + PIN_SLP(gpa1-0, INPUT, DOWN); + PIN_SLP(gpa1-1, OUT0, NONE); + PIN_SLP(gpa1-2, INPUT, DOWN); + PIN_SLP(gpa1-3, OUT0, NONE); + + PIN_SLP(gpb-0, OUT0, NONE); + PIN_SLP(gpb-1, OUT1, NONE); + PIN_SLP(gpb-2, OUT0, NONE); + PIN_SLP(gpb-3, PREV, NONE); + PIN_SLP(gpb-4, INPUT, NONE); + PIN_SLP(gpb-5, PREV, NONE); + PIN_SLP(gpb-6, INPUT, DOWN); + PIN_SLP(gpb-7, OUT0, NONE); + + PIN_SLP(gpc0-0, OUT0, NONE); + PIN_SLP(gpc0-1, INPUT, DOWN); + PIN_SLP(gpc0-2, OUT0, NONE); + PIN_SLP(gpc0-3, INPUT, DOWN); + PIN_SLP(gpc0-4, OUT0, NONE); + + PIN_SLP(gpc1-0, INPUT, DOWN); + PIN_SLP(gpc1-1, INPUT, DOWN); + PIN_SLP(gpc1-2, INPUT, DOWN); + PIN_SLP(gpc1-3, INPUT, DOWN); + PIN_SLP(gpc1-4, INPUT, DOWN); + + PIN_SLP(gpd0-0, INPUT, DOWN); + PIN_SLP(gpd0-1, OUT0, NONE); + PIN_SLP(gpd0-2, INPUT, DOWN); + PIN_SLP(gpd0-3, INPUT, DOWN); + + PIN_SLP(gpd1-0, INPUT, NONE); + PIN_SLP(gpd1-1, INPUT, NONE); + PIN_SLP(gpd1-2, INPUT, DOWN); + PIN_SLP(gpd1-3, INPUT, DOWN); + PIN_SLP(gpd1-4, INPUT, DOWN); + PIN_SLP(gpd1-5, INPUT, DOWN); + + PIN_SLP(gpe0-0, INPUT, DOWN); + PIN_SLP(gpe0-1, INPUT, DOWN); + PIN_SLP(gpe0-2, INPUT, DOWN); + PIN_SLP(gpe0-3, INPUT, DOWN); + PIN_SLP(gpe0-4, INPUT, DOWN); + PIN_SLP(gpe0-5, INPUT, DOWN); + PIN_SLP(gpe0-6, INPUT, DOWN); + PIN_SLP(gpe0-7, INPUT, DOWN); + + PIN_SLP(gpe1-0, INPUT, DOWN); + PIN_SLP(gpe1-1, INPUT, DOWN); + PIN_SLP(gpe1-2, INPUT, DOWN); + PIN_SLP(gpe1-3, OUT0, NONE); + PIN_SLP(gpe1-4, INPUT, DOWN); + + PIN_SLP(gpf0-0, OUT0, NONE); + PIN_SLP(gpf0-1, OUT0, NONE); + PIN_SLP(gpf0-2, OUT0, NONE); + PIN_SLP(gpf0-3, OUT0, NONE); + PIN_SLP(gpf0-4, OUT0, NONE); + PIN_SLP(gpf0-5, OUT0, NONE); + PIN_SLP(gpf0-6, OUT0, NONE); + PIN_SLP(gpf0-7, OUT0, NONE); + + PIN_SLP(gpf1-0, OUT0, NONE); + PIN_SLP(gpf1-1, OUT0, NONE); + PIN_SLP(gpf1-2, OUT0, NONE); + PIN_SLP(gpf1-3, OUT0, NONE); + PIN_SLP(gpf1-4, OUT0, NONE); + PIN_SLP(gpf1-5, OUT0, NONE); + PIN_SLP(gpf1-6, OUT0, NONE); + PIN_SLP(gpf1-7, OUT0, NONE); + + PIN_SLP(gpf2-0, OUT0, NONE); + PIN_SLP(gpf2-1, OUT0, NONE); + PIN_SLP(gpf2-2, OUT0, NONE); + PIN_SLP(gpf2-3, OUT0, NONE); + PIN_SLP(gpf2-4, OUT0, NONE); + PIN_SLP(gpf2-5, OUT0, NONE); + PIN_SLP(gpf2-6, OUT0, NONE); + PIN_SLP(gpf2-7, OUT0, NONE); + + PIN_SLP(gpf3-0, OUT0, NONE); + PIN_SLP(gpf3-1, OUT0, NONE); + PIN_SLP(gpf3-2, OUT0, NONE); + PIN_SLP(gpf3-3, OUT0, NONE); + PIN_SLP(gpf3-4, PREV, NONE); + PIN_SLP(gpf3-5, INPUT, DOWN); + + PIN_SLP(gpg0-0, INPUT, DOWN); + PIN_SLP(gpg0-1, INPUT, DOWN); + PIN_SLP(gpg0-2, INPUT, NONE); + PIN_SLP(gpg0-3, INPUT, DOWN); + PIN_SLP(gpg0-4, INPUT, DOWN); + PIN_SLP(gpg0-5, INPUT, DOWN); + PIN_SLP(gpg0-6, INPUT, DOWN); + + PIN_SLP(gpg1-0, OUT0, NONE); + PIN_SLP(gpg1-1, OUT1, NONE); + PIN_SLP(gpg1-2, PREV, NONE); + PIN_SLP(gpg1-3, OUT1, NONE); + PIN_SLP(gpg1-4, OUT1, NONE); + PIN_SLP(gpg1-5, OUT1, NONE); + PIN_SLP(gpg1-6, OUT1, NONE); + + PIN_SLP(gpg2-0, OUT0, NONE); + PIN_SLP(gpg2-1, OUT0, NONE); + PIN_SLP(gpg2-2, INPUT, NONE); + PIN_SLP(gpg2-3, OUT0, NONE); + PIN_SLP(gpg2-4, OUT0, NONE); + PIN_SLP(gpg2-5, OUT0, NONE); + PIN_SLP(gpg2-6, OUT0, NONE); + + PIN_SLP(gpg3-0, PREV, UP); + PIN_SLP(gpg3-1, PREV, UP); + PIN_SLP(gpg3-2, INPUT, NONE); + PIN_SLP(gpg3-3, INPUT, DOWN); + PIN_SLP(gpg3-4, OUT0, NONE); + PIN_SLP(gpg3-5, OUT0, NONE); + PIN_SLP(gpg3-6, INPUT, DOWN); + + PIN_SLP(gpi-0, PREV, NONE); + PIN_SLP(gpi-1, INPUT, DOWN); + PIN_SLP(gpi-2, PREV, NONE); + PIN_SLP(gpi-3, PREV, NONE); + PIN_SLP(gpi-4, PREV, NONE); + PIN_SLP(gpi-5, INPUT, DOWN); + PIN_SLP(gpi-6, INPUT, DOWN); + + PIN_SLP(gpj0-0, INPUT, NONE); + PIN_SLP(gpj0-1, INPUT, NONE); + PIN_SLP(gpj0-2, INPUT, NONE); + PIN_SLP(gpj0-3, INPUT, NONE); + PIN_SLP(gpj0-4, INPUT, NONE); + PIN_SLP(gpj0-5, INPUT, DOWN); + PIN_SLP(gpj0-6, OUT0, NONE); + PIN_SLP(gpj0-7, INPUT, NONE); + + PIN_SLP(gpj1-0, OUT1, NONE); + PIN_SLP(gpj1-1, OUT0, NONE); + PIN_SLP(gpj1-2, INPUT, DOWN); + PIN_SLP(gpj1-3, PREV, NONE); + PIN_SLP(gpj1-4, PREV, NONE); + PIN_SLP(gpj1-5, OUT0, NONE); + + PIN_SLP(gpj2-0, INPUT, DOWN); + PIN_SLP(gpj2-1, INPUT, DOWN); + PIN_SLP(gpj2-2, OUT0, NONE); + PIN_SLP(gpj2-3, INPUT, DOWN); + PIN_SLP(gpj2-4, INPUT, DOWN); + PIN_SLP(gpj2-5, PREV, NONE); + PIN_SLP(gpj2-6, PREV, NONE); + PIN_SLP(gpj2-7, INPUT, DOWN); + + PIN_SLP(gpj3-0, INPUT, NONE); + PIN_SLP(gpj3-1, INPUT, NONE); + PIN_SLP(gpj3-2, OUT0, NONE); + PIN_SLP(gpj3-3, INPUT, DOWN); + PIN_SLP(gpj3-4, INPUT, NONE); + PIN_SLP(gpj3-5, INPUT, NONE); + PIN_SLP(gpj3-6, INPUT, NONE); + PIN_SLP(gpj3-7, INPUT, NONE); + + PIN_SLP(gpj4-0, INPUT, NONE); + PIN_SLP(gpj4-1, INPUT, DOWN); + PIN_SLP(gpj4-2, PREV, NONE); + PIN_SLP(gpj4-3, INPUT, NONE); + PIN_SLP(gpj4-4, INPUT, DOWN); + + PIN_SLP(mp01-0, OUT1, NONE); + PIN_SLP(mp01-1, OUT0, NONE); + PIN_SLP(mp01-2, INPUT, DOWN); + PIN_SLP(mp01-3, INPUT, DOWN); + PIN_SLP(mp01-4, OUT1, NONE); + PIN_SLP(mp01-5, INPUT, DOWN); + PIN_SLP(mp01-6, INPUT, DOWN); + PIN_SLP(mp01-7, INPUT, DOWN); + + PIN_SLP(mp02-0, INPUT, DOWN); + PIN_SLP(mp02-1, INPUT, DOWN); + PIN_SLP(mp02-2, INPUT, NONE); + PIN_SLP(mp02-3, INPUT, DOWN); + + PIN_SLP(mp03-0, INPUT, DOWN); + PIN_SLP(mp03-1, INPUT, DOWN); + PIN_SLP(mp03-2, OUT1, NONE); + PIN_SLP(mp03-3, OUT0, NONE); + PIN_SLP(mp03-4, INPUT, NONE); + PIN_SLP(mp03-5, OUT0, NONE); + PIN_SLP(mp03-6, INPUT, DOWN); + PIN_SLP(mp03-7, INPUT, DOWN); + + PIN_SLP(mp04-0, INPUT, DOWN); + PIN_SLP(mp04-1, OUT0, NONE); + PIN_SLP(mp04-2, INPUT, DOWN); + PIN_SLP(mp04-3, OUT0, NONE); + PIN_SLP(mp04-4, INPUT, DOWN); + PIN_SLP(mp04-5, INPUT, DOWN); + PIN_SLP(mp04-6, OUT0, NONE); + PIN_SLP(mp04-7, INPUT, DOWN); + + PIN_SLP(mp05-0, INPUT, NONE); + PIN_SLP(mp05-1, INPUT, NONE); + PIN_SLP(mp05-2, INPUT, NONE); + PIN_SLP(mp05-3, INPUT, NONE); + PIN_SLP(mp05-4, INPUT, DOWN); + PIN_SLP(mp05-5, OUT0, NONE); + PIN_SLP(mp05-6, INPUT, DOWN); + PIN_SLP(mp05-7, PREV, NONE); + + PIN_SLP(mp06-0, INPUT, DOWN); + PIN_SLP(mp06-1, INPUT, DOWN); + PIN_SLP(mp06-2, INPUT, DOWN); + PIN_SLP(mp06-3, INPUT, DOWN); + PIN_SLP(mp06-4, INPUT, DOWN); + PIN_SLP(mp06-5, INPUT, DOWN); + PIN_SLP(mp06-6, INPUT, DOWN); + PIN_SLP(mp06-7, INPUT, DOWN); + + PIN_SLP(mp07-0, INPUT, DOWN); + PIN_SLP(mp07-1, INPUT, DOWN); + PIN_SLP(mp07-2, INPUT, DOWN); + PIN_SLP(mp07-3, INPUT, DOWN); + PIN_SLP(mp07-4, INPUT, DOWN); + PIN_SLP(mp07-5, INPUT, DOWN); + PIN_SLP(mp07-6, INPUT, DOWN); + PIN_SLP(mp07-7, INPUT, DOWN); + }; +}; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration 2020-04-26 18:35 ` [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration Jonathan Bakker @ 2020-04-28 10:02 ` Krzysztof Kozlowski 2020-04-28 23:49 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-04-28 10:02 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Sun, Apr 26, 2020 at 11:35:53AM -0700, Jonathan Bakker wrote: > In order to minimize leakage current during sleep, set a config > for sleep GPIOs. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > --- > arch/arm/boot/dts/s5pv210-fascinate4g.dts | 242 ++++++++++++++++++++++ > 1 file changed, 242 insertions(+) > > diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > index 07a8d9bbe5b8..94dcb9b64b9a 100644 > --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts > +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > @@ -36,3 +36,245 @@ > }; > }; > }; > + > +&pinctrl0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep_cfg>; > + > + sleep_cfg: sleep-cfg { > + PIN_SLP(gpa0-0, PREV, NONE); > + PIN_SLP(gpa0-1, PREV, NONE); > + PIN_SLP(gpa0-2, PREV, NONE); > + PIN_SLP(gpa0-3, OUT1, NONE); I would be happy to see some reasoning why certain pins have disabled pull down (e.g. they are not connected or you use the same configuration as running one) and why you set them as output. > + PIN_SLP(gpa0-4, PREV, NONE); > + PIN_SLP(gpa0-5, PREV, NONE); > + PIN_SLP(gpa0-6, PREV, NONE); > + PIN_SLP(gpa0-7, PREV, NONE); > + > + PIN_SLP(gpa1-0, INPUT, DOWN); > + PIN_SLP(gpa1-1, OUT0, NONE); > + PIN_SLP(gpa1-2, INPUT, DOWN); > + PIN_SLP(gpa1-3, OUT0, NONE); > + > + PIN_SLP(gpb-0, OUT0, NONE); > + PIN_SLP(gpb-1, OUT1, NONE); > + PIN_SLP(gpb-2, OUT0, NONE); > + PIN_SLP(gpb-3, PREV, NONE); > + PIN_SLP(gpb-4, INPUT, NONE); > + PIN_SLP(gpb-5, PREV, NONE); > + PIN_SLP(gpb-6, INPUT, DOWN); > + PIN_SLP(gpb-7, OUT0, NONE); > + > + PIN_SLP(gpc0-0, OUT0, NONE); > + PIN_SLP(gpc0-1, INPUT, DOWN); > + PIN_SLP(gpc0-2, OUT0, NONE); > + PIN_SLP(gpc0-3, INPUT, DOWN); > + PIN_SLP(gpc0-4, OUT0, NONE); > + > + PIN_SLP(gpc1-0, INPUT, DOWN); > + PIN_SLP(gpc1-1, INPUT, DOWN); > + PIN_SLP(gpc1-2, INPUT, DOWN); > + PIN_SLP(gpc1-3, INPUT, DOWN); > + PIN_SLP(gpc1-4, INPUT, DOWN); > + > + PIN_SLP(gpd0-0, INPUT, DOWN); > + PIN_SLP(gpd0-1, OUT0, NONE); > + PIN_SLP(gpd0-2, INPUT, DOWN); > + PIN_SLP(gpd0-3, INPUT, DOWN); > + > + PIN_SLP(gpd1-0, INPUT, NONE); > + PIN_SLP(gpd1-1, INPUT, NONE); > + PIN_SLP(gpd1-2, INPUT, DOWN); > + PIN_SLP(gpd1-3, INPUT, DOWN); > + PIN_SLP(gpd1-4, INPUT, DOWN); > + PIN_SLP(gpd1-5, INPUT, DOWN); > + > + PIN_SLP(gpe0-0, INPUT, DOWN); > + PIN_SLP(gpe0-1, INPUT, DOWN); > + PIN_SLP(gpe0-2, INPUT, DOWN); > + PIN_SLP(gpe0-3, INPUT, DOWN); > + PIN_SLP(gpe0-4, INPUT, DOWN); > + PIN_SLP(gpe0-5, INPUT, DOWN); > + PIN_SLP(gpe0-6, INPUT, DOWN); > + PIN_SLP(gpe0-7, INPUT, DOWN); > + > + PIN_SLP(gpe1-0, INPUT, DOWN); > + PIN_SLP(gpe1-1, INPUT, DOWN); > + PIN_SLP(gpe1-2, INPUT, DOWN); > + PIN_SLP(gpe1-3, OUT0, NONE); > + PIN_SLP(gpe1-4, INPUT, DOWN); > + > + PIN_SLP(gpf0-0, OUT0, NONE); > + PIN_SLP(gpf0-1, OUT0, NONE); > + PIN_SLP(gpf0-2, OUT0, NONE); > + PIN_SLP(gpf0-3, OUT0, NONE); > + PIN_SLP(gpf0-4, OUT0, NONE); > + PIN_SLP(gpf0-5, OUT0, NONE); > + PIN_SLP(gpf0-6, OUT0, NONE); > + PIN_SLP(gpf0-7, OUT0, NONE); > + > + PIN_SLP(gpf1-0, OUT0, NONE); > + PIN_SLP(gpf1-1, OUT0, NONE); > + PIN_SLP(gpf1-2, OUT0, NONE); > + PIN_SLP(gpf1-3, OUT0, NONE); > + PIN_SLP(gpf1-4, OUT0, NONE); > + PIN_SLP(gpf1-5, OUT0, NONE); > + PIN_SLP(gpf1-6, OUT0, NONE); > + PIN_SLP(gpf1-7, OUT0, NONE); > + > + PIN_SLP(gpf2-0, OUT0, NONE); > + PIN_SLP(gpf2-1, OUT0, NONE); > + PIN_SLP(gpf2-2, OUT0, NONE); > + PIN_SLP(gpf2-3, OUT0, NONE); > + PIN_SLP(gpf2-4, OUT0, NONE); > + PIN_SLP(gpf2-5, OUT0, NONE); > + PIN_SLP(gpf2-6, OUT0, NONE); > + PIN_SLP(gpf2-7, OUT0, NONE); > + > + PIN_SLP(gpf3-0, OUT0, NONE); > + PIN_SLP(gpf3-1, OUT0, NONE); > + PIN_SLP(gpf3-2, OUT0, NONE); > + PIN_SLP(gpf3-3, OUT0, NONE); > + PIN_SLP(gpf3-4, PREV, NONE); > + PIN_SLP(gpf3-5, INPUT, DOWN); > + > + PIN_SLP(gpg0-0, INPUT, DOWN); > + PIN_SLP(gpg0-1, INPUT, DOWN); > + PIN_SLP(gpg0-2, INPUT, NONE); > + PIN_SLP(gpg0-3, INPUT, DOWN); > + PIN_SLP(gpg0-4, INPUT, DOWN); > + PIN_SLP(gpg0-5, INPUT, DOWN); > + PIN_SLP(gpg0-6, INPUT, DOWN); > + > + PIN_SLP(gpg1-0, OUT0, NONE); > + PIN_SLP(gpg1-1, OUT1, NONE); > + PIN_SLP(gpg1-2, PREV, NONE); > + PIN_SLP(gpg1-3, OUT1, NONE); > + PIN_SLP(gpg1-4, OUT1, NONE); > + PIN_SLP(gpg1-5, OUT1, NONE); > + PIN_SLP(gpg1-6, OUT1, NONE); > + > + PIN_SLP(gpg2-0, OUT0, NONE); > + PIN_SLP(gpg2-1, OUT0, NONE); > + PIN_SLP(gpg2-2, INPUT, NONE); > + PIN_SLP(gpg2-3, OUT0, NONE); > + PIN_SLP(gpg2-4, OUT0, NONE); > + PIN_SLP(gpg2-5, OUT0, NONE); > + PIN_SLP(gpg2-6, OUT0, NONE); > + > + PIN_SLP(gpg3-0, PREV, UP); > + PIN_SLP(gpg3-1, PREV, UP); > + PIN_SLP(gpg3-2, INPUT, NONE); > + PIN_SLP(gpg3-3, INPUT, DOWN); > + PIN_SLP(gpg3-4, OUT0, NONE); > + PIN_SLP(gpg3-5, OUT0, NONE); > + PIN_SLP(gpg3-6, INPUT, DOWN); > + > + PIN_SLP(gpi-0, PREV, NONE); No such name. Did you mean gpgi? > + PIN_SLP(gpi-1, INPUT, DOWN); > + PIN_SLP(gpi-2, PREV, NONE); > + PIN_SLP(gpi-3, PREV, NONE); > + PIN_SLP(gpi-4, PREV, NONE); > + PIN_SLP(gpi-5, INPUT, DOWN); > + PIN_SLP(gpi-6, INPUT, DOWN); > + > + PIN_SLP(gpj0-0, INPUT, NONE); > + PIN_SLP(gpj0-1, INPUT, NONE); > + PIN_SLP(gpj0-2, INPUT, NONE); > + PIN_SLP(gpj0-3, INPUT, NONE); > + PIN_SLP(gpj0-4, INPUT, NONE); > + PIN_SLP(gpj0-5, INPUT, DOWN); > + PIN_SLP(gpj0-6, OUT0, NONE); > + PIN_SLP(gpj0-7, INPUT, NONE); > + > + PIN_SLP(gpj1-0, OUT1, NONE); > + PIN_SLP(gpj1-1, OUT0, NONE); > + PIN_SLP(gpj1-2, INPUT, DOWN); > + PIN_SLP(gpj1-3, PREV, NONE); > + PIN_SLP(gpj1-4, PREV, NONE); > + PIN_SLP(gpj1-5, OUT0, NONE); > + > + PIN_SLP(gpj2-0, INPUT, DOWN); > + PIN_SLP(gpj2-1, INPUT, DOWN); > + PIN_SLP(gpj2-2, OUT0, NONE); > + PIN_SLP(gpj2-3, INPUT, DOWN); > + PIN_SLP(gpj2-4, INPUT, DOWN); > + PIN_SLP(gpj2-5, PREV, NONE); > + PIN_SLP(gpj2-6, PREV, NONE); > + PIN_SLP(gpj2-7, INPUT, DOWN); > + > + PIN_SLP(gpj3-0, INPUT, NONE); > + PIN_SLP(gpj3-1, INPUT, NONE); > + PIN_SLP(gpj3-2, OUT0, NONE); > + PIN_SLP(gpj3-3, INPUT, DOWN); > + PIN_SLP(gpj3-4, INPUT, NONE); > + PIN_SLP(gpj3-5, INPUT, NONE); > + PIN_SLP(gpj3-6, INPUT, NONE); > + PIN_SLP(gpj3-7, INPUT, NONE); > + > + PIN_SLP(gpj4-0, INPUT, NONE); > + PIN_SLP(gpj4-1, INPUT, DOWN); > + PIN_SLP(gpj4-2, PREV, NONE); > + PIN_SLP(gpj4-3, INPUT, NONE); > + PIN_SLP(gpj4-4, INPUT, DOWN); > + > + PIN_SLP(mp01-0, OUT1, NONE); > + PIN_SLP(mp01-1, OUT0, NONE); > + PIN_SLP(mp01-2, INPUT, DOWN); > + PIN_SLP(mp01-3, INPUT, DOWN); > + PIN_SLP(mp01-4, OUT1, NONE); > + PIN_SLP(mp01-5, INPUT, DOWN); > + PIN_SLP(mp01-6, INPUT, DOWN); > + PIN_SLP(mp01-7, INPUT, DOWN); > + > + PIN_SLP(mp02-0, INPUT, DOWN); > + PIN_SLP(mp02-1, INPUT, DOWN); > + PIN_SLP(mp02-2, INPUT, NONE); > + PIN_SLP(mp02-3, INPUT, DOWN); > + > + PIN_SLP(mp03-0, INPUT, DOWN); > + PIN_SLP(mp03-1, INPUT, DOWN); > + PIN_SLP(mp03-2, OUT1, NONE); > + PIN_SLP(mp03-3, OUT0, NONE); > + PIN_SLP(mp03-4, INPUT, NONE); > + PIN_SLP(mp03-5, OUT0, NONE); > + PIN_SLP(mp03-6, INPUT, DOWN); > + PIN_SLP(mp03-7, INPUT, DOWN); > + > + PIN_SLP(mp04-0, INPUT, DOWN); > + PIN_SLP(mp04-1, OUT0, NONE); > + PIN_SLP(mp04-2, INPUT, DOWN); > + PIN_SLP(mp04-3, OUT0, NONE); > + PIN_SLP(mp04-4, INPUT, DOWN); > + PIN_SLP(mp04-5, INPUT, DOWN); > + PIN_SLP(mp04-6, OUT0, NONE); > + PIN_SLP(mp04-7, INPUT, DOWN); > + > + PIN_SLP(mp05-0, INPUT, NONE); > + PIN_SLP(mp05-1, INPUT, NONE); > + PIN_SLP(mp05-2, INPUT, NONE); > + PIN_SLP(mp05-3, INPUT, NONE); > + PIN_SLP(mp05-4, INPUT, DOWN); > + PIN_SLP(mp05-5, OUT0, NONE); > + PIN_SLP(mp05-6, INPUT, DOWN); > + PIN_SLP(mp05-7, PREV, NONE); > + > + PIN_SLP(mp06-0, INPUT, DOWN); > + PIN_SLP(mp06-1, INPUT, DOWN); > + PIN_SLP(mp06-2, INPUT, DOWN); > + PIN_SLP(mp06-3, INPUT, DOWN); > + PIN_SLP(mp06-4, INPUT, DOWN); > + PIN_SLP(mp06-5, INPUT, DOWN); > + PIN_SLP(mp06-6, INPUT, DOWN); > + PIN_SLP(mp06-7, INPUT, DOWN); > + > + PIN_SLP(mp07-0, INPUT, DOWN); > + PIN_SLP(mp07-1, INPUT, DOWN); > + PIN_SLP(mp07-2, INPUT, DOWN); > + PIN_SLP(mp07-3, INPUT, DOWN); > + PIN_SLP(mp07-4, INPUT, DOWN); > + PIN_SLP(mp07-5, INPUT, DOWN); > + PIN_SLP(mp07-6, INPUT, DOWN); > + PIN_SLP(mp07-7, INPUT, DOWN); > + }; What about gphX? Best regards, Krzysztof > +}; > -- > 2.20.1 > ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration 2020-04-28 10:02 ` Krzysztof Kozlowski @ 2020-04-28 23:49 ` Jonathan Bakker 2020-05-01 13:10 ` Krzysztof Kozlowski 0 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-28 23:49 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Hi Krzysztof, On 2020-04-28 3:02 a.m., Krzysztof Kozlowski wrote: > On Sun, Apr 26, 2020 at 11:35:53AM -0700, Jonathan Bakker wrote: >> In order to minimize leakage current during sleep, set a config >> for sleep GPIOs. >> >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> >> --- >> arch/arm/boot/dts/s5pv210-fascinate4g.dts | 242 ++++++++++++++++++++++ >> 1 file changed, 242 insertions(+) >> >> diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> index 07a8d9bbe5b8..94dcb9b64b9a 100644 >> --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> @@ -36,3 +36,245 @@ >> }; >> }; >> }; >> + >> +&pinctrl0 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&sleep_cfg>; >> + >> + sleep_cfg: sleep-cfg { >> + PIN_SLP(gpa0-0, PREV, NONE); >> + PIN_SLP(gpa0-1, PREV, NONE); >> + PIN_SLP(gpa0-2, PREV, NONE); >> + PIN_SLP(gpa0-3, OUT1, NONE); > > I would be happy to see some reasoning why certain pins have disabled > pull down (e.g. they are not connected or you use the same configuration > as running one) and why you set them as output. > Mostly it's copied from the vendor kernel configuration. Without schematics, I can only guess what's actually there. I can go through and note what each pin appears to be used for if you'd like. >> + PIN_SLP(gpa0-4, PREV, NONE); >> + PIN_SLP(gpa0-5, PREV, NONE); >> + PIN_SLP(gpa0-6, PREV, NONE); >> + PIN_SLP(gpa0-7, PREV, NONE); >> + >> + PIN_SLP(gpa1-0, INPUT, DOWN); >> + PIN_SLP(gpa1-1, OUT0, NONE); >> + PIN_SLP(gpa1-2, INPUT, DOWN); >> + PIN_SLP(gpa1-3, OUT0, NONE); >> + >> + PIN_SLP(gpb-0, OUT0, NONE); >> + PIN_SLP(gpb-1, OUT1, NONE); >> + PIN_SLP(gpb-2, OUT0, NONE); >> + PIN_SLP(gpb-3, PREV, NONE); >> + PIN_SLP(gpb-4, INPUT, NONE); >> + PIN_SLP(gpb-5, PREV, NONE); >> + PIN_SLP(gpb-6, INPUT, DOWN); >> + PIN_SLP(gpb-7, OUT0, NONE); >> + >> + PIN_SLP(gpc0-0, OUT0, NONE); >> + PIN_SLP(gpc0-1, INPUT, DOWN); >> + PIN_SLP(gpc0-2, OUT0, NONE); >> + PIN_SLP(gpc0-3, INPUT, DOWN); >> + PIN_SLP(gpc0-4, OUT0, NONE); >> + >> + PIN_SLP(gpc1-0, INPUT, DOWN); >> + PIN_SLP(gpc1-1, INPUT, DOWN); >> + PIN_SLP(gpc1-2, INPUT, DOWN); >> + PIN_SLP(gpc1-3, INPUT, DOWN); >> + PIN_SLP(gpc1-4, INPUT, DOWN); >> + >> + PIN_SLP(gpd0-0, INPUT, DOWN); >> + PIN_SLP(gpd0-1, OUT0, NONE); >> + PIN_SLP(gpd0-2, INPUT, DOWN); >> + PIN_SLP(gpd0-3, INPUT, DOWN); >> + >> + PIN_SLP(gpd1-0, INPUT, NONE); >> + PIN_SLP(gpd1-1, INPUT, NONE); >> + PIN_SLP(gpd1-2, INPUT, DOWN); >> + PIN_SLP(gpd1-3, INPUT, DOWN); >> + PIN_SLP(gpd1-4, INPUT, DOWN); >> + PIN_SLP(gpd1-5, INPUT, DOWN); >> + >> + PIN_SLP(gpe0-0, INPUT, DOWN); >> + PIN_SLP(gpe0-1, INPUT, DOWN); >> + PIN_SLP(gpe0-2, INPUT, DOWN); >> + PIN_SLP(gpe0-3, INPUT, DOWN); >> + PIN_SLP(gpe0-4, INPUT, DOWN); >> + PIN_SLP(gpe0-5, INPUT, DOWN); >> + PIN_SLP(gpe0-6, INPUT, DOWN); >> + PIN_SLP(gpe0-7, INPUT, DOWN); >> + >> + PIN_SLP(gpe1-0, INPUT, DOWN); >> + PIN_SLP(gpe1-1, INPUT, DOWN); >> + PIN_SLP(gpe1-2, INPUT, DOWN); >> + PIN_SLP(gpe1-3, OUT0, NONE); >> + PIN_SLP(gpe1-4, INPUT, DOWN); >> + >> + PIN_SLP(gpf0-0, OUT0, NONE); >> + PIN_SLP(gpf0-1, OUT0, NONE); >> + PIN_SLP(gpf0-2, OUT0, NONE); >> + PIN_SLP(gpf0-3, OUT0, NONE); >> + PIN_SLP(gpf0-4, OUT0, NONE); >> + PIN_SLP(gpf0-5, OUT0, NONE); >> + PIN_SLP(gpf0-6, OUT0, NONE); >> + PIN_SLP(gpf0-7, OUT0, NONE); >> + >> + PIN_SLP(gpf1-0, OUT0, NONE); >> + PIN_SLP(gpf1-1, OUT0, NONE); >> + PIN_SLP(gpf1-2, OUT0, NONE); >> + PIN_SLP(gpf1-3, OUT0, NONE); >> + PIN_SLP(gpf1-4, OUT0, NONE); >> + PIN_SLP(gpf1-5, OUT0, NONE); >> + PIN_SLP(gpf1-6, OUT0, NONE); >> + PIN_SLP(gpf1-7, OUT0, NONE); >> + >> + PIN_SLP(gpf2-0, OUT0, NONE); >> + PIN_SLP(gpf2-1, OUT0, NONE); >> + PIN_SLP(gpf2-2, OUT0, NONE); >> + PIN_SLP(gpf2-3, OUT0, NONE); >> + PIN_SLP(gpf2-4, OUT0, NONE); >> + PIN_SLP(gpf2-5, OUT0, NONE); >> + PIN_SLP(gpf2-6, OUT0, NONE); >> + PIN_SLP(gpf2-7, OUT0, NONE); >> + >> + PIN_SLP(gpf3-0, OUT0, NONE); >> + PIN_SLP(gpf3-1, OUT0, NONE); >> + PIN_SLP(gpf3-2, OUT0, NONE); >> + PIN_SLP(gpf3-3, OUT0, NONE); >> + PIN_SLP(gpf3-4, PREV, NONE); >> + PIN_SLP(gpf3-5, INPUT, DOWN); >> + >> + PIN_SLP(gpg0-0, INPUT, DOWN); >> + PIN_SLP(gpg0-1, INPUT, DOWN); >> + PIN_SLP(gpg0-2, INPUT, NONE); >> + PIN_SLP(gpg0-3, INPUT, DOWN); >> + PIN_SLP(gpg0-4, INPUT, DOWN); >> + PIN_SLP(gpg0-5, INPUT, DOWN); >> + PIN_SLP(gpg0-6, INPUT, DOWN); >> + >> + PIN_SLP(gpg1-0, OUT0, NONE); >> + PIN_SLP(gpg1-1, OUT1, NONE); >> + PIN_SLP(gpg1-2, PREV, NONE); >> + PIN_SLP(gpg1-3, OUT1, NONE); >> + PIN_SLP(gpg1-4, OUT1, NONE); >> + PIN_SLP(gpg1-5, OUT1, NONE); >> + PIN_SLP(gpg1-6, OUT1, NONE); >> + >> + PIN_SLP(gpg2-0, OUT0, NONE); >> + PIN_SLP(gpg2-1, OUT0, NONE); >> + PIN_SLP(gpg2-2, INPUT, NONE); >> + PIN_SLP(gpg2-3, OUT0, NONE); >> + PIN_SLP(gpg2-4, OUT0, NONE); >> + PIN_SLP(gpg2-5, OUT0, NONE); >> + PIN_SLP(gpg2-6, OUT0, NONE); >> + >> + PIN_SLP(gpg3-0, PREV, UP); >> + PIN_SLP(gpg3-1, PREV, UP); >> + PIN_SLP(gpg3-2, INPUT, NONE); >> + PIN_SLP(gpg3-3, INPUT, DOWN); >> + PIN_SLP(gpg3-4, OUT0, NONE); >> + PIN_SLP(gpg3-5, OUT0, NONE); >> + PIN_SLP(gpg3-6, INPUT, DOWN); >> + >> + PIN_SLP(gpi-0, PREV, NONE); > > No such name. Did you mean gpgi? > > The node in s5pv210-pinctrl.dtsi is called "gpgi", but the i2s0_bus config in that file uses just "gpi". drivers/pinctrl/samsung/pinctrl-exynos-arm.c also notes it just as "gpi". I think the node should probably be renamed. >> + PIN_SLP(gpi-1, INPUT, DOWN); >> + PIN_SLP(gpi-2, PREV, NONE); >> + PIN_SLP(gpi-3, PREV, NONE); >> + PIN_SLP(gpi-4, PREV, NONE); >> + PIN_SLP(gpi-5, INPUT, DOWN); >> + PIN_SLP(gpi-6, INPUT, DOWN); >> + >> + PIN_SLP(gpj0-0, INPUT, NONE); >> + PIN_SLP(gpj0-1, INPUT, NONE); >> + PIN_SLP(gpj0-2, INPUT, NONE); >> + PIN_SLP(gpj0-3, INPUT, NONE); >> + PIN_SLP(gpj0-4, INPUT, NONE); >> + PIN_SLP(gpj0-5, INPUT, DOWN); >> + PIN_SLP(gpj0-6, OUT0, NONE); >> + PIN_SLP(gpj0-7, INPUT, NONE); >> + >> + PIN_SLP(gpj1-0, OUT1, NONE); >> + PIN_SLP(gpj1-1, OUT0, NONE); >> + PIN_SLP(gpj1-2, INPUT, DOWN); >> + PIN_SLP(gpj1-3, PREV, NONE); >> + PIN_SLP(gpj1-4, PREV, NONE); >> + PIN_SLP(gpj1-5, OUT0, NONE); >> + >> + PIN_SLP(gpj2-0, INPUT, DOWN); >> + PIN_SLP(gpj2-1, INPUT, DOWN); >> + PIN_SLP(gpj2-2, OUT0, NONE); >> + PIN_SLP(gpj2-3, INPUT, DOWN); >> + PIN_SLP(gpj2-4, INPUT, DOWN); >> + PIN_SLP(gpj2-5, PREV, NONE); >> + PIN_SLP(gpj2-6, PREV, NONE); >> + PIN_SLP(gpj2-7, INPUT, DOWN); >> + >> + PIN_SLP(gpj3-0, INPUT, NONE); >> + PIN_SLP(gpj3-1, INPUT, NONE); >> + PIN_SLP(gpj3-2, OUT0, NONE); >> + PIN_SLP(gpj3-3, INPUT, DOWN); >> + PIN_SLP(gpj3-4, INPUT, NONE); >> + PIN_SLP(gpj3-5, INPUT, NONE); >> + PIN_SLP(gpj3-6, INPUT, NONE); >> + PIN_SLP(gpj3-7, INPUT, NONE); >> + >> + PIN_SLP(gpj4-0, INPUT, NONE); >> + PIN_SLP(gpj4-1, INPUT, DOWN); >> + PIN_SLP(gpj4-2, PREV, NONE); >> + PIN_SLP(gpj4-3, INPUT, NONE); >> + PIN_SLP(gpj4-4, INPUT, DOWN); >> + >> + PIN_SLP(mp01-0, OUT1, NONE); >> + PIN_SLP(mp01-1, OUT0, NONE); >> + PIN_SLP(mp01-2, INPUT, DOWN); >> + PIN_SLP(mp01-3, INPUT, DOWN); >> + PIN_SLP(mp01-4, OUT1, NONE); >> + PIN_SLP(mp01-5, INPUT, DOWN); >> + PIN_SLP(mp01-6, INPUT, DOWN); >> + PIN_SLP(mp01-7, INPUT, DOWN); >> + >> + PIN_SLP(mp02-0, INPUT, DOWN); >> + PIN_SLP(mp02-1, INPUT, DOWN); >> + PIN_SLP(mp02-2, INPUT, NONE); >> + PIN_SLP(mp02-3, INPUT, DOWN); >> + >> + PIN_SLP(mp03-0, INPUT, DOWN); >> + PIN_SLP(mp03-1, INPUT, DOWN); >> + PIN_SLP(mp03-2, OUT1, NONE); >> + PIN_SLP(mp03-3, OUT0, NONE); >> + PIN_SLP(mp03-4, INPUT, NONE); >> + PIN_SLP(mp03-5, OUT0, NONE); >> + PIN_SLP(mp03-6, INPUT, DOWN); >> + PIN_SLP(mp03-7, INPUT, DOWN); >> + >> + PIN_SLP(mp04-0, INPUT, DOWN); >> + PIN_SLP(mp04-1, OUT0, NONE); >> + PIN_SLP(mp04-2, INPUT, DOWN); >> + PIN_SLP(mp04-3, OUT0, NONE); >> + PIN_SLP(mp04-4, INPUT, DOWN); >> + PIN_SLP(mp04-5, INPUT, DOWN); >> + PIN_SLP(mp04-6, OUT0, NONE); >> + PIN_SLP(mp04-7, INPUT, DOWN); >> + >> + PIN_SLP(mp05-0, INPUT, NONE); >> + PIN_SLP(mp05-1, INPUT, NONE); >> + PIN_SLP(mp05-2, INPUT, NONE); >> + PIN_SLP(mp05-3, INPUT, NONE); >> + PIN_SLP(mp05-4, INPUT, DOWN); >> + PIN_SLP(mp05-5, OUT0, NONE); >> + PIN_SLP(mp05-6, INPUT, DOWN); >> + PIN_SLP(mp05-7, PREV, NONE); >> + >> + PIN_SLP(mp06-0, INPUT, DOWN); >> + PIN_SLP(mp06-1, INPUT, DOWN); >> + PIN_SLP(mp06-2, INPUT, DOWN); >> + PIN_SLP(mp06-3, INPUT, DOWN); >> + PIN_SLP(mp06-4, INPUT, DOWN); >> + PIN_SLP(mp06-5, INPUT, DOWN); >> + PIN_SLP(mp06-6, INPUT, DOWN); >> + PIN_SLP(mp06-7, INPUT, DOWN); >> + >> + PIN_SLP(mp07-0, INPUT, DOWN); >> + PIN_SLP(mp07-1, INPUT, DOWN); >> + PIN_SLP(mp07-2, INPUT, DOWN); >> + PIN_SLP(mp07-3, INPUT, DOWN); >> + PIN_SLP(mp07-4, INPUT, DOWN); >> + PIN_SLP(mp07-5, INPUT, DOWN); >> + PIN_SLP(mp07-6, INPUT, DOWN); >> + PIN_SLP(mp07-7, INPUT, DOWN); >> + }; > > What about gphX? The gphX pins are in the alive area and don't have power down configs, they retain their state over suspend. Therefore the samsung,pin-con-pdn and samsung,pin-pud-pdn properties have no effect (they're analogous to the gpxX pins in later Samsung SoCs). > > Best regards, > Krzysztof > >> +}; >> -- >> 2.20.1 >> Thanks, Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration 2020-04-28 23:49 ` Jonathan Bakker @ 2020-05-01 13:10 ` Krzysztof Kozlowski 0 siblings, 0 replies; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-05-01 13:10 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Tue, Apr 28, 2020 at 04:49:36PM -0700, Jonathan Bakker wrote: > Hi Krzysztof, > > On 2020-04-28 3:02 a.m., Krzysztof Kozlowski wrote: > > On Sun, Apr 26, 2020 at 11:35:53AM -0700, Jonathan Bakker wrote: > >> In order to minimize leakage current during sleep, set a config > >> for sleep GPIOs. > >> > >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > >> --- > >> arch/arm/boot/dts/s5pv210-fascinate4g.dts | 242 ++++++++++++++++++++++ > >> 1 file changed, 242 insertions(+) > >> > >> diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > >> index 07a8d9bbe5b8..94dcb9b64b9a 100644 > >> --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts > >> +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > >> @@ -36,3 +36,245 @@ > >> }; > >> }; > >> }; > >> + > >> +&pinctrl0 { > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&sleep_cfg>; > >> + > >> + sleep_cfg: sleep-cfg { > >> + PIN_SLP(gpa0-0, PREV, NONE); > >> + PIN_SLP(gpa0-1, PREV, NONE); > >> + PIN_SLP(gpa0-2, PREV, NONE); > >> + PIN_SLP(gpa0-3, OUT1, NONE); > > > > I would be happy to see some reasoning why certain pins have disabled > > pull down (e.g. they are not connected or you use the same configuration > > as running one) and why you set them as output. > > > > Mostly it's copied from the vendor kernel configuration. Without schematics, I can > only guess what's actually there. I can go through and note what each pin appears > to be used for if you'd like. Then please mention that it is based on vendor kernel vx.y for product ABC. In such case it will be enough. > > >> + PIN_SLP(gpa0-4, PREV, NONE); > >> + PIN_SLP(gpa0-5, PREV, NONE); > >> + PIN_SLP(gpa0-6, PREV, NONE); > >> + PIN_SLP(gpa0-7, PREV, NONE); > >> + > >> + PIN_SLP(gpa1-0, INPUT, DOWN); > >> + PIN_SLP(gpa1-1, OUT0, NONE); > >> + PIN_SLP(gpa1-2, INPUT, DOWN); > >> + PIN_SLP(gpa1-3, OUT0, NONE); > >> + > >> + PIN_SLP(gpb-0, OUT0, NONE); > >> + PIN_SLP(gpb-1, OUT1, NONE); > >> + PIN_SLP(gpb-2, OUT0, NONE); > >> + PIN_SLP(gpb-3, PREV, NONE); > >> + PIN_SLP(gpb-4, INPUT, NONE); > >> + PIN_SLP(gpb-5, PREV, NONE); > >> + PIN_SLP(gpb-6, INPUT, DOWN); > >> + PIN_SLP(gpb-7, OUT0, NONE); > >> + > >> + PIN_SLP(gpc0-0, OUT0, NONE); > >> + PIN_SLP(gpc0-1, INPUT, DOWN); > >> + PIN_SLP(gpc0-2, OUT0, NONE); > >> + PIN_SLP(gpc0-3, INPUT, DOWN); > >> + PIN_SLP(gpc0-4, OUT0, NONE); > >> + > >> + PIN_SLP(gpc1-0, INPUT, DOWN); > >> + PIN_SLP(gpc1-1, INPUT, DOWN); > >> + PIN_SLP(gpc1-2, INPUT, DOWN); > >> + PIN_SLP(gpc1-3, INPUT, DOWN); > >> + PIN_SLP(gpc1-4, INPUT, DOWN); > >> + > >> + PIN_SLP(gpd0-0, INPUT, DOWN); > >> + PIN_SLP(gpd0-1, OUT0, NONE); > >> + PIN_SLP(gpd0-2, INPUT, DOWN); > >> + PIN_SLP(gpd0-3, INPUT, DOWN); > >> + > >> + PIN_SLP(gpd1-0, INPUT, NONE); > >> + PIN_SLP(gpd1-1, INPUT, NONE); > >> + PIN_SLP(gpd1-2, INPUT, DOWN); > >> + PIN_SLP(gpd1-3, INPUT, DOWN); > >> + PIN_SLP(gpd1-4, INPUT, DOWN); > >> + PIN_SLP(gpd1-5, INPUT, DOWN); > >> + > >> + PIN_SLP(gpe0-0, INPUT, DOWN); > >> + PIN_SLP(gpe0-1, INPUT, DOWN); > >> + PIN_SLP(gpe0-2, INPUT, DOWN); > >> + PIN_SLP(gpe0-3, INPUT, DOWN); > >> + PIN_SLP(gpe0-4, INPUT, DOWN); > >> + PIN_SLP(gpe0-5, INPUT, DOWN); > >> + PIN_SLP(gpe0-6, INPUT, DOWN); > >> + PIN_SLP(gpe0-7, INPUT, DOWN); > >> + > >> + PIN_SLP(gpe1-0, INPUT, DOWN); > >> + PIN_SLP(gpe1-1, INPUT, DOWN); > >> + PIN_SLP(gpe1-2, INPUT, DOWN); > >> + PIN_SLP(gpe1-3, OUT0, NONE); > >> + PIN_SLP(gpe1-4, INPUT, DOWN); > >> + > >> + PIN_SLP(gpf0-0, OUT0, NONE); > >> + PIN_SLP(gpf0-1, OUT0, NONE); > >> + PIN_SLP(gpf0-2, OUT0, NONE); > >> + PIN_SLP(gpf0-3, OUT0, NONE); > >> + PIN_SLP(gpf0-4, OUT0, NONE); > >> + PIN_SLP(gpf0-5, OUT0, NONE); > >> + PIN_SLP(gpf0-6, OUT0, NONE); > >> + PIN_SLP(gpf0-7, OUT0, NONE); > >> + > >> + PIN_SLP(gpf1-0, OUT0, NONE); > >> + PIN_SLP(gpf1-1, OUT0, NONE); > >> + PIN_SLP(gpf1-2, OUT0, NONE); > >> + PIN_SLP(gpf1-3, OUT0, NONE); > >> + PIN_SLP(gpf1-4, OUT0, NONE); > >> + PIN_SLP(gpf1-5, OUT0, NONE); > >> + PIN_SLP(gpf1-6, OUT0, NONE); > >> + PIN_SLP(gpf1-7, OUT0, NONE); > >> + > >> + PIN_SLP(gpf2-0, OUT0, NONE); > >> + PIN_SLP(gpf2-1, OUT0, NONE); > >> + PIN_SLP(gpf2-2, OUT0, NONE); > >> + PIN_SLP(gpf2-3, OUT0, NONE); > >> + PIN_SLP(gpf2-4, OUT0, NONE); > >> + PIN_SLP(gpf2-5, OUT0, NONE); > >> + PIN_SLP(gpf2-6, OUT0, NONE); > >> + PIN_SLP(gpf2-7, OUT0, NONE); > >> + > >> + PIN_SLP(gpf3-0, OUT0, NONE); > >> + PIN_SLP(gpf3-1, OUT0, NONE); > >> + PIN_SLP(gpf3-2, OUT0, NONE); > >> + PIN_SLP(gpf3-3, OUT0, NONE); > >> + PIN_SLP(gpf3-4, PREV, NONE); > >> + PIN_SLP(gpf3-5, INPUT, DOWN); > >> + > >> + PIN_SLP(gpg0-0, INPUT, DOWN); > >> + PIN_SLP(gpg0-1, INPUT, DOWN); > >> + PIN_SLP(gpg0-2, INPUT, NONE); > >> + PIN_SLP(gpg0-3, INPUT, DOWN); > >> + PIN_SLP(gpg0-4, INPUT, DOWN); > >> + PIN_SLP(gpg0-5, INPUT, DOWN); > >> + PIN_SLP(gpg0-6, INPUT, DOWN); > >> + > >> + PIN_SLP(gpg1-0, OUT0, NONE); > >> + PIN_SLP(gpg1-1, OUT1, NONE); > >> + PIN_SLP(gpg1-2, PREV, NONE); > >> + PIN_SLP(gpg1-3, OUT1, NONE); > >> + PIN_SLP(gpg1-4, OUT1, NONE); > >> + PIN_SLP(gpg1-5, OUT1, NONE); > >> + PIN_SLP(gpg1-6, OUT1, NONE); > >> + > >> + PIN_SLP(gpg2-0, OUT0, NONE); > >> + PIN_SLP(gpg2-1, OUT0, NONE); > >> + PIN_SLP(gpg2-2, INPUT, NONE); > >> + PIN_SLP(gpg2-3, OUT0, NONE); > >> + PIN_SLP(gpg2-4, OUT0, NONE); > >> + PIN_SLP(gpg2-5, OUT0, NONE); > >> + PIN_SLP(gpg2-6, OUT0, NONE); > >> + > >> + PIN_SLP(gpg3-0, PREV, UP); > >> + PIN_SLP(gpg3-1, PREV, UP); > >> + PIN_SLP(gpg3-2, INPUT, NONE); > >> + PIN_SLP(gpg3-3, INPUT, DOWN); > >> + PIN_SLP(gpg3-4, OUT0, NONE); > >> + PIN_SLP(gpg3-5, OUT0, NONE); > >> + PIN_SLP(gpg3-6, INPUT, DOWN); > >> + > >> + PIN_SLP(gpi-0, PREV, NONE); > > > > No such name. Did you mean gpgi? > > > > > > The node in s5pv210-pinctrl.dtsi is called "gpgi", but the i2s0_bus config > in that file uses just "gpi". drivers/pinctrl/samsung/pinctrl-exynos-arm.c also > notes it just as "gpi". I think the node should probably be renamed. > Good point. Will you send a fix for gpgi->gpi? > >> + PIN_SLP(gpi-1, INPUT, DOWN); > >> + PIN_SLP(gpi-2, PREV, NONE); > >> + PIN_SLP(gpi-3, PREV, NONE); > >> + PIN_SLP(gpi-4, PREV, NONE); > >> + PIN_SLP(gpi-5, INPUT, DOWN); > >> + PIN_SLP(gpi-6, INPUT, DOWN); > >> + > >> + PIN_SLP(gpj0-0, INPUT, NONE); > >> + PIN_SLP(gpj0-1, INPUT, NONE); > >> + PIN_SLP(gpj0-2, INPUT, NONE); > >> + PIN_SLP(gpj0-3, INPUT, NONE); > >> + PIN_SLP(gpj0-4, INPUT, NONE); > >> + PIN_SLP(gpj0-5, INPUT, DOWN); > >> + PIN_SLP(gpj0-6, OUT0, NONE); > >> + PIN_SLP(gpj0-7, INPUT, NONE); > >> + > >> + PIN_SLP(gpj1-0, OUT1, NONE); > >> + PIN_SLP(gpj1-1, OUT0, NONE); > >> + PIN_SLP(gpj1-2, INPUT, DOWN); > >> + PIN_SLP(gpj1-3, PREV, NONE); > >> + PIN_SLP(gpj1-4, PREV, NONE); > >> + PIN_SLP(gpj1-5, OUT0, NONE); > >> + > >> + PIN_SLP(gpj2-0, INPUT, DOWN); > >> + PIN_SLP(gpj2-1, INPUT, DOWN); > >> + PIN_SLP(gpj2-2, OUT0, NONE); > >> + PIN_SLP(gpj2-3, INPUT, DOWN); > >> + PIN_SLP(gpj2-4, INPUT, DOWN); > >> + PIN_SLP(gpj2-5, PREV, NONE); > >> + PIN_SLP(gpj2-6, PREV, NONE); > >> + PIN_SLP(gpj2-7, INPUT, DOWN); > >> + > >> + PIN_SLP(gpj3-0, INPUT, NONE); > >> + PIN_SLP(gpj3-1, INPUT, NONE); > >> + PIN_SLP(gpj3-2, OUT0, NONE); > >> + PIN_SLP(gpj3-3, INPUT, DOWN); > >> + PIN_SLP(gpj3-4, INPUT, NONE); > >> + PIN_SLP(gpj3-5, INPUT, NONE); > >> + PIN_SLP(gpj3-6, INPUT, NONE); > >> + PIN_SLP(gpj3-7, INPUT, NONE); > >> + > >> + PIN_SLP(gpj4-0, INPUT, NONE); > >> + PIN_SLP(gpj4-1, INPUT, DOWN); > >> + PIN_SLP(gpj4-2, PREV, NONE); > >> + PIN_SLP(gpj4-3, INPUT, NONE); > >> + PIN_SLP(gpj4-4, INPUT, DOWN); > >> + > >> + PIN_SLP(mp01-0, OUT1, NONE); > >> + PIN_SLP(mp01-1, OUT0, NONE); > >> + PIN_SLP(mp01-2, INPUT, DOWN); > >> + PIN_SLP(mp01-3, INPUT, DOWN); > >> + PIN_SLP(mp01-4, OUT1, NONE); > >> + PIN_SLP(mp01-5, INPUT, DOWN); > >> + PIN_SLP(mp01-6, INPUT, DOWN); > >> + PIN_SLP(mp01-7, INPUT, DOWN); > >> + > >> + PIN_SLP(mp02-0, INPUT, DOWN); > >> + PIN_SLP(mp02-1, INPUT, DOWN); > >> + PIN_SLP(mp02-2, INPUT, NONE); > >> + PIN_SLP(mp02-3, INPUT, DOWN); > >> + > >> + PIN_SLP(mp03-0, INPUT, DOWN); > >> + PIN_SLP(mp03-1, INPUT, DOWN); > >> + PIN_SLP(mp03-2, OUT1, NONE); > >> + PIN_SLP(mp03-3, OUT0, NONE); > >> + PIN_SLP(mp03-4, INPUT, NONE); > >> + PIN_SLP(mp03-5, OUT0, NONE); > >> + PIN_SLP(mp03-6, INPUT, DOWN); > >> + PIN_SLP(mp03-7, INPUT, DOWN); > >> + > >> + PIN_SLP(mp04-0, INPUT, DOWN); > >> + PIN_SLP(mp04-1, OUT0, NONE); > >> + PIN_SLP(mp04-2, INPUT, DOWN); > >> + PIN_SLP(mp04-3, OUT0, NONE); > >> + PIN_SLP(mp04-4, INPUT, DOWN); > >> + PIN_SLP(mp04-5, INPUT, DOWN); > >> + PIN_SLP(mp04-6, OUT0, NONE); > >> + PIN_SLP(mp04-7, INPUT, DOWN); > >> + > >> + PIN_SLP(mp05-0, INPUT, NONE); > >> + PIN_SLP(mp05-1, INPUT, NONE); > >> + PIN_SLP(mp05-2, INPUT, NONE); > >> + PIN_SLP(mp05-3, INPUT, NONE); > >> + PIN_SLP(mp05-4, INPUT, DOWN); > >> + PIN_SLP(mp05-5, OUT0, NONE); > >> + PIN_SLP(mp05-6, INPUT, DOWN); > >> + PIN_SLP(mp05-7, PREV, NONE); > >> + > >> + PIN_SLP(mp06-0, INPUT, DOWN); > >> + PIN_SLP(mp06-1, INPUT, DOWN); > >> + PIN_SLP(mp06-2, INPUT, DOWN); > >> + PIN_SLP(mp06-3, INPUT, DOWN); > >> + PIN_SLP(mp06-4, INPUT, DOWN); > >> + PIN_SLP(mp06-5, INPUT, DOWN); > >> + PIN_SLP(mp06-6, INPUT, DOWN); > >> + PIN_SLP(mp06-7, INPUT, DOWN); > >> + > >> + PIN_SLP(mp07-0, INPUT, DOWN); > >> + PIN_SLP(mp07-1, INPUT, DOWN); > >> + PIN_SLP(mp07-2, INPUT, DOWN); > >> + PIN_SLP(mp07-3, INPUT, DOWN); > >> + PIN_SLP(mp07-4, INPUT, DOWN); > >> + PIN_SLP(mp07-5, INPUT, DOWN); > >> + PIN_SLP(mp07-6, INPUT, DOWN); > >> + PIN_SLP(mp07-7, INPUT, DOWN); > >> + }; > > > > What about gphX? > > The gphX pins are in the alive area and don't have power down configs, they retain their > state over suspend. Therefore the samsung,pin-con-pdn and samsung,pin-pud-pdn properties > have no effect (they're analogous to the gpxX pins in later Samsung SoCs). Ah, good, thanks. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH 03/13] arm: dts: s5pv210: galaxys: Add sleep GPIO configuration [not found] <20200426183604.28494-1-xc-racer2@live.ca> 2020-04-26 18:35 ` [PATCH 01/13] arm: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker 2020-04-26 18:35 ` [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 04/13] arm: dts: s5pv210: aries: Set keep-power-in-suspend for SDHCI1 Jonathan Bakker ` (11 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker In order to minimize leakage current during sleep, set a config for sleep GPIOs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-galaxys.dts | 240 ++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index cf161bbfbacf..2eff1e66a2a5 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -52,12 +52,252 @@ }; &pinctrl0 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep_cfg>; + massmemory_en: massmemory-en { samsung,pins = "gpj2-7"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + sleep_cfg: sleep-cfg { + PIN_SLP(gpa0-0, PREV, NONE); + PIN_SLP(gpa0-1, PREV, NONE); + PIN_SLP(gpa0-2, PREV, NONE); + PIN_SLP(gpa0-3, OUT1, NONE); + PIN_SLP(gpa0-4, INPUT, DOWN); + PIN_SLP(gpa0-5, OUT0, NONE); + PIN_SLP(gpa0-6, INPUT, DOWN); + PIN_SLP(gpa0-7, OUT1, NONE); + + PIN_SLP(gpa1-0, INPUT, DOWN); + PIN_SLP(gpa1-1, OUT0, NONE); + PIN_SLP(gpa1-2, INPUT, NONE); + PIN_SLP(gpa1-3, OUT0, NONE); + + PIN_SLP(gpb-0, OUT0, NONE); + PIN_SLP(gpb-1, OUT1, NONE); + PIN_SLP(gpb-2, OUT0, NONE); + PIN_SLP(gpb-3, PREV, NONE); + PIN_SLP(gpb-4, INPUT, NONE); + PIN_SLP(gpb-5, PREV, NONE); + PIN_SLP(gpb-6, INPUT, DOWN); + PIN_SLP(gpb-7, OUT0, NONE); + + PIN_SLP(gpc0-0, OUT0, NONE); + PIN_SLP(gpc0-1, INPUT, DOWN); + PIN_SLP(gpc0-2, OUT0, NONE); + PIN_SLP(gpc0-3, INPUT, NONE); + PIN_SLP(gpc0-4, OUT0, NONE); + + PIN_SLP(gpc1-0, INPUT, DOWN); + PIN_SLP(gpc1-1, INPUT, DOWN); + PIN_SLP(gpc1-2, INPUT, DOWN); + PIN_SLP(gpc1-3, INPUT, DOWN); + PIN_SLP(gpc1-4, INPUT, DOWN); + + PIN_SLP(gpd0-0, INPUT, DOWN); + PIN_SLP(gpd0-1, OUT0, NONE); + PIN_SLP(gpd0-2, INPUT, DOWN); + PIN_SLP(gpd0-3, INPUT, DOWN); + + PIN_SLP(gpd1-0, INPUT, NONE); + PIN_SLP(gpd1-1, INPUT, NONE); + PIN_SLP(gpd1-2, INPUT, NONE); + PIN_SLP(gpd1-3, INPUT, NONE); + PIN_SLP(gpd1-4, INPUT, DOWN); + PIN_SLP(gpd1-5, INPUT, DOWN); + + PIN_SLP(gpe0-0, INPUT, DOWN); + PIN_SLP(gpe0-1, INPUT, DOWN); + PIN_SLP(gpe0-2, INPUT, DOWN); + PIN_SLP(gpe0-3, INPUT, DOWN); + PIN_SLP(gpe0-4, INPUT, DOWN); + PIN_SLP(gpe0-5, INPUT, DOWN); + PIN_SLP(gpe0-6, INPUT, DOWN); + PIN_SLP(gpe0-7, INPUT, DOWN); + + PIN_SLP(gpe1-0, INPUT, DOWN); + PIN_SLP(gpe1-1, INPUT, DOWN); + PIN_SLP(gpe1-2, INPUT, DOWN); + PIN_SLP(gpe1-3, OUT0, NONE); + PIN_SLP(gpe1-4, INPUT, DOWN); + + PIN_SLP(gpf0-0, OUT0, NONE); + PIN_SLP(gpf0-1, OUT0, NONE); + PIN_SLP(gpf0-2, OUT0, NONE); + PIN_SLP(gpf0-3, OUT0, NONE); + PIN_SLP(gpf0-4, OUT0, NONE); + PIN_SLP(gpf0-5, OUT0, NONE); + PIN_SLP(gpf0-6, OUT0, NONE); + PIN_SLP(gpf0-7, OUT0, NONE); + + PIN_SLP(gpf1-0, OUT0, NONE); + PIN_SLP(gpf1-1, OUT0, NONE); + PIN_SLP(gpf1-2, OUT0, NONE); + PIN_SLP(gpf1-3, OUT0, NONE); + PIN_SLP(gpf1-4, OUT0, NONE); + PIN_SLP(gpf1-5, OUT0, NONE); + PIN_SLP(gpf1-6, OUT0, NONE); + PIN_SLP(gpf1-7, OUT0, NONE); + + PIN_SLP(gpf2-0, OUT0, NONE); + PIN_SLP(gpf2-1, OUT0, NONE); + PIN_SLP(gpf2-2, OUT0, NONE); + PIN_SLP(gpf2-3, OUT0, NONE); + PIN_SLP(gpf2-4, OUT0, NONE); + PIN_SLP(gpf2-5, OUT0, NONE); + PIN_SLP(gpf2-6, OUT0, NONE); + PIN_SLP(gpf2-7, OUT0, NONE); + + PIN_SLP(gpf3-0, OUT0, NONE); + PIN_SLP(gpf3-1, OUT0, NONE); + PIN_SLP(gpf3-2, OUT0, NONE); + PIN_SLP(gpf3-3, OUT0, NONE); + PIN_SLP(gpf3-4, PREV, NONE); + PIN_SLP(gpf3-5, INPUT, DOWN); + + PIN_SLP(gpg0-0, OUT0, NONE); + PIN_SLP(gpg0-1, INPUT, NONE); + PIN_SLP(gpg0-2, INPUT, NONE); + PIN_SLP(gpg0-3, INPUT, NONE); + PIN_SLP(gpg0-4, INPUT, NONE); + PIN_SLP(gpg0-5, INPUT, NONE); + PIN_SLP(gpg0-6, INPUT, NONE); + + PIN_SLP(gpg1-0, OUT0, NONE); + PIN_SLP(gpg1-1, OUT1, NONE); + PIN_SLP(gpg1-2, PREV, NONE); + PIN_SLP(gpg1-3, OUT1, NONE); + PIN_SLP(gpg1-4, OUT1, NONE); + PIN_SLP(gpg1-5, OUT1, NONE); + PIN_SLP(gpg1-6, OUT1, NONE); + + PIN_SLP(gpg2-0, OUT0, NONE); + PIN_SLP(gpg2-1, OUT0, NONE); + PIN_SLP(gpg2-2, INPUT, NONE); + PIN_SLP(gpg2-3, OUT0, NONE); + PIN_SLP(gpg2-4, OUT0, NONE); + PIN_SLP(gpg2-5, OUT0, NONE); + PIN_SLP(gpg2-6, OUT0, NONE); + + PIN_SLP(gpg3-0, OUT1, NONE); + PIN_SLP(gpg3-1, OUT0, NONE); + PIN_SLP(gpg3-2, INPUT, NONE); + PIN_SLP(gpg3-3, INPUT, DOWN); + PIN_SLP(gpg3-4, OUT0, NONE); + PIN_SLP(gpg3-5, OUT0, NONE); + PIN_SLP(gpg3-6, INPUT, DOWN); + + PIN_SLP(gpi-0, PREV, NONE); + PIN_SLP(gpi-1, INPUT, DOWN); + PIN_SLP(gpi-2, PREV, NONE); + PIN_SLP(gpi-3, PREV, NONE); + PIN_SLP(gpi-4, PREV, NONE); + PIN_SLP(gpi-5, INPUT, DOWN); + PIN_SLP(gpi-6, INPUT, DOWN); + + PIN_SLP(gpj0-0, INPUT, NONE); + PIN_SLP(gpj0-1, INPUT, NONE); + PIN_SLP(gpj0-2, INPUT, NONE); + PIN_SLP(gpj0-3, INPUT, NONE); + PIN_SLP(gpj0-4, INPUT, NONE); + PIN_SLP(gpj0-5, INPUT, DOWN); + PIN_SLP(gpj0-6, OUT0, NONE); + PIN_SLP(gpj0-7, INPUT, NONE); + + PIN_SLP(gpj1-0, INPUT, DOWN); + PIN_SLP(gpj1-1, OUT0, NONE); + PIN_SLP(gpj1-2, INPUT, DOWN); + PIN_SLP(gpj1-3, PREV, NONE); + PIN_SLP(gpj1-4, PREV, NONE); + PIN_SLP(gpj1-5, OUT0, NONE); + + PIN_SLP(gpj2-0, INPUT, DOWN); + PIN_SLP(gpj2-1, INPUT, DOWN); + PIN_SLP(gpj2-2, OUT0, NONE); + PIN_SLP(gpj2-3, INPUT, DOWN); + PIN_SLP(gpj2-4, INPUT, UP); + PIN_SLP(gpj2-5, PREV, NONE); + PIN_SLP(gpj2-6, PREV, NONE); + PIN_SLP(gpj2-7, OUT1, NONE); + + PIN_SLP(gpj3-0, INPUT, NONE); + PIN_SLP(gpj3-1, INPUT, NONE); + PIN_SLP(gpj3-2, OUT0, NONE); + PIN_SLP(gpj3-3, INPUT, DOWN); + PIN_SLP(gpj3-4, INPUT, NONE); + PIN_SLP(gpj3-5, INPUT, NONE); + PIN_SLP(gpj3-6, INPUT, NONE); + PIN_SLP(gpj3-7, INPUT, NONE); + + PIN_SLP(gpj4-0, INPUT, NONE); + PIN_SLP(gpj4-1, INPUT, DOWN); + PIN_SLP(gpj4-2, PREV, NONE); + PIN_SLP(gpj4-3, INPUT, NONE); + PIN_SLP(gpj4-4, INPUT, DOWN); + + PIN_SLP(mp01-0, INPUT, DOWN); + PIN_SLP(mp01-1, OUT0, NONE); + PIN_SLP(mp01-2, INPUT, DOWN); + PIN_SLP(mp01-3, INPUT, DOWN); + PIN_SLP(mp01-4, OUT1, NONE); + PIN_SLP(mp01-5, INPUT, DOWN); + PIN_SLP(mp01-6, INPUT, DOWN); + PIN_SLP(mp01-7, INPUT, DOWN); + + PIN_SLP(mp02-0, INPUT, DOWN); + PIN_SLP(mp02-1, INPUT, DOWN); + PIN_SLP(mp02-2, INPUT, NONE); + PIN_SLP(mp02-3, INPUT, DOWN); + + PIN_SLP(mp03-0, INPUT, DOWN); + PIN_SLP(mp03-1, INPUT, DOWN); + PIN_SLP(mp03-2, OUT1, NONE); + PIN_SLP(mp03-3, OUT0, NONE); + PIN_SLP(mp03-4, INPUT, NONE); + PIN_SLP(mp03-5, OUT1, NONE); + PIN_SLP(mp03-6, INPUT, DOWN); + PIN_SLP(mp03-7, INPUT, DOWN); + + PIN_SLP(mp04-0, INPUT, DOWN); + PIN_SLP(mp04-1, OUT0, NONE); + PIN_SLP(mp04-2, INPUT, DOWN); + PIN_SLP(mp04-3, OUT0, NONE); + PIN_SLP(mp04-4, INPUT, DOWN); + PIN_SLP(mp04-5, INPUT, DOWN); + PIN_SLP(mp04-6, OUT0, NONE); + PIN_SLP(mp04-7, INPUT, DOWN); + + PIN_SLP(mp05-0, INPUT, NONE); + PIN_SLP(mp05-1, INPUT, NONE); + PIN_SLP(mp05-2, INPUT, NONE); + PIN_SLP(mp05-3, INPUT, NONE); + PIN_SLP(mp05-4, INPUT, DOWN); + PIN_SLP(mp05-5, OUT0, NONE); + PIN_SLP(mp05-6, INPUT, DOWN); + PIN_SLP(mp05-7, PREV, NONE); + + PIN_SLP(mp06-0, INPUT, DOWN); + PIN_SLP(mp06-1, INPUT, DOWN); + PIN_SLP(mp06-2, INPUT, DOWN); + PIN_SLP(mp06-3, INPUT, DOWN); + PIN_SLP(mp06-4, INPUT, DOWN); + PIN_SLP(mp06-5, INPUT, DOWN); + PIN_SLP(mp06-6, INPUT, DOWN); + PIN_SLP(mp06-7, INPUT, DOWN); + + PIN_SLP(mp07-0, INPUT, DOWN); + PIN_SLP(mp07-1, INPUT, DOWN); + PIN_SLP(mp07-2, INPUT, DOWN); + PIN_SLP(mp07-3, INPUT, DOWN); + PIN_SLP(mp07-4, INPUT, DOWN); + PIN_SLP(mp07-5, INPUT, DOWN); + PIN_SLP(mp07-6, INPUT, DOWN); + PIN_SLP(mp07-7, INPUT, DOWN); + }; }; &sdhci0 { -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 04/13] arm: dts: s5pv210: aries: Set keep-power-in-suspend for SDHCI1 [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (2 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 03/13] arm: dts: s5pv210: galaxys: " Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 05/13] arm: dts: s5pv210: aries: Disable pulls on GPIO i2c adapters Jonathan Bakker ` (10 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker SDHCI1 is connected to a BCM4329 WiFi/BT chip which requires power to be kept over suspend. As the surrounding hardware supports this, mark it as such. This fixes wifi after a suspend/resume cycle. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 8ff70b856334..d419b77201f7 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -454,6 +454,7 @@ pinctrl-names = "default"; cap-sd-highspeed; cap-mmc-highspeed; + keep-power-in-suspend; mmc-pwrseq = <&wifi_pwrseq>; non-removable; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 05/13] arm: dts: s5pv210: aries: Disable pulls on GPIO i2c adapters [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (3 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 04/13] arm: dts: s5pv210: aries: Set keep-power-in-suspend for SDHCI1 Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices Jonathan Bakker ` (9 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The bitbanged GPIO i2c adapters have external pull-ups attached so the internal pulls should be disabled for lower power usage. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index d419b77201f7..f83df426f2b6 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -65,6 +65,9 @@ #address-cells = <1>; #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_i2c_pins>; + pmic@66 { compatible = "maxim,max8998"; reg = <0x66>; @@ -314,6 +317,9 @@ #address-cells = <1>; #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&fg_i2c_pins>; + fuelgauge@36 { compatible = "maxim,max17040"; interrupt-parent = <&vic0>; @@ -438,6 +444,18 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + pmic_i2c_pins: pmic-i2c-pins { + samsung,pins = "gpj4-0", "gpj4-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fg_i2c_pins: fg-i2c-pins { + samsung,pins = "mp05-0", "mp05-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; }; &pwm { -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (4 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 05/13] arm: dts: s5pv210: aries: Disable pulls on GPIO i2c adapters Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-28 10:20 ` Krzysztof Kozlowski 2020-04-26 18:35 ` [PATCH 07/13] arm: dts: s5pv210: galaxys: Add si470x fmradio Jonathan Bakker ` (8 subsequent siblings) 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker, Paweł Chmiel Add support for following devices: - touchkeys connected over i2c-gpio - s6e63m0 panel connected over spi-gpio - fsa9480 microusb switch over i2c-gpio - wm8994 over i2c-gpio (no machine driver yet) - all common i2c-gpio devices Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 282 ++++++++++++++++++++-- arch/arm/boot/dts/s5pv210-fascinate4g.dts | 6 + 2 files changed, 270 insertions(+), 18 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index f83df426f2b6..ef966d13d83d 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -12,8 +12,14 @@ compatible = "samsung,aries", "samsung,s5pv210"; aliases { + i2c4 = &i2c_sound; + i2c5 = &i2c_accel; i2c6 = &i2c_pmic; + i2c7 = &i2c_musb; i2c9 = &i2c_fuel; + i2c10 = &i2c_touchkey; + i2c11 = &i2c_prox; + i2c12 = &i2c_magnetometer; }; memory@30000000 { @@ -48,6 +54,18 @@ gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; }; + touchkey_vdd: regulator-fixed-1 { + compatible = "regulator-fixed"; + regulator-name = "VTOUCH_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_vdd_ena>; + }; + wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; @@ -57,7 +75,69 @@ power-off-delay-us = <500>; }; - i2c_pmic: i2c-gpio-0 { + i2c_sound: i2c-gpio-0 { + compatible = "i2c-gpio"; + sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&sound_i2c_pins>; + + wm8994: wm8994@1a { + compatible = "wlf,wm8994"; + reg = <0x1a>; + + #sound-dai-cells = <0>; + + gpio-controller; + #gpio-cells = <2>; + + clocks = <&clocks MOUT_CLKOUT>; + clock-names = "MCLK1"; + + AVDD2-supply = <&buck3_reg>; + DBVDD-supply = <&buck3_reg>; + CPVDD-supply = <&buck3_reg>; + SPKVDD1-supply = <&buck3_reg>; + SPKVDD2-supply = <&buck3_reg>; + + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 + 0xa101 0x0100 0x8100 0x0100 0x0100 + 0x0100>; + + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; + + wlf,lineout1-se; + wlf,lineout2-se; + + assigned-clocks = <&clocks MOUT_CLKOUT>; + assigned-clock-rates = <0>; + assigned-clock-parents = <&xusbxti>; + + pinctrl-names = "default"; + pinctrl-0 = <&codec_ldo>; + }; + }; + + i2c_accel: i2c-gpio-1 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&accel_i2c_pins>; + + /* bma023 accelerometer, no mainline binding */ + }; + + i2c_pmic: i2c-gpio-2 { compatible = "i2c-gpio"; sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -137,8 +217,6 @@ regulator-name = "VLCD_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - /* Till we get panel driver */ - regulator-always-on; regulator-state-mem { regulator-off-in-suspend; @@ -237,8 +315,6 @@ regulator-name = "VCC_3.0V_LCD"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; - /* Till we get panel driver */ - regulator-always-on; regulator-state-mem { regulator-off-in-suspend; @@ -309,7 +385,26 @@ }; }; - i2c_fuel: i2c-gpio-1 { + i2c_musb: i2c-gpio-3 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&musb_i2c_pins>; + + fsa9480: musb@25 { + compatible = "fcs,fsa9480"; + reg = <0x25>; + interrupt-parent = <&gph2>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + }; + }; + + i2c_fuel: i2c-gpio-4 { compatible = "i2c-gpio"; sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -328,6 +423,60 @@ }; }; + i2c_touchkey: i2c-gpio-5 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_i2c_pins>; + + touchkey@20 { + compatible = "cypress,aries-touchkey"; + reg = <0x20>; + vdd-supply = <&touchkey_vdd>; + vcc-supply = <&buck3_reg>; + linux,keycodes = <KEY_MENU KEY_BACK + KEY_HOMEPAGE KEY_SEARCH>; + interrupt-parent = <&gpj4>; + interrupts = <1 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_irq>; + }; + }; + + i2c_prox: i2c-gpio-6 { + compatible = "i2c-gpio"; + sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&prox_i2c_pins>; + + /* Sharp gp2a prox/light sensor, incomplete mainline binding */ + }; + + i2c_magnetometer: i2c-gpio-7 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&magnetometer_i2c_pins>; + + /* Yamaha yas529 magnetometer, no mainline binding */ + }; + vibrator: pwm-vibrator { compatible = "pwm-vibrator"; pwms = <&pwm 1 44642 0>; @@ -343,6 +492,39 @@ offset = <0x681c>; /* PS_HOLD_CONTROL */ value = <0x5200>; }; + + spi_lcd: spi-gpio-0 { + compatible = "spi-gpio"; + #address-cells = <1>; + #size-cells = <0>; + + sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>; + mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>; + cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>; + num-chipselects = <1>; + + pinctrl-names = "default"; + pinctrl-0 = <&lcd_spi_pins>; + + panel@0 { + compatible = "samsung,s6e63m0"; + reg = <0>; + reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>; + vdd3-supply = <&ldo7_reg>; + vci-supply = <&ldo17_reg>; + spi-cs-high; + spi-max-frequency = <1200000>; + + pinctrl-names = "default"; + pinctrl-0 = <&panel_rst>; + + port { + lcd_ep: endpoint { + remote-endpoint = <&fimd_ep>; + }; + }; + }; + }; }; &fimd { @@ -353,18 +535,13 @@ samsung,invert-vden; samsung,invert-vclk; - display-timings { - timing-0 { - /* 480x800@60Hz */ - clock-frequency = <25628040>; - hactive = <480>; - vactive = <800>; - hfront-porch = <16>; - hback-porch = <16>; - hsync-len = <2>; - vfront-porch = <28>; - vback-porch = <1>; - vsync-len = <2>; + #address-cells = <1>; + #size-cells = <0>; + + port@3 { + reg = <3>; + fimd_ep: endpoint { + remote-endpoint = <&lcd_ep>; }; }; }; @@ -405,6 +582,19 @@ samsung,pin-val = <1>; }; + codec_ldo: codec-ldo { + samsung,pins = "gpf3-4"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + }; + + prox_i2c_pins: gp2a-i2c-pins { + samsung,pins = "gpg0-2", "gpg2-2"; + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + wlan_gpio_rst: wlan-gpio-rst { samsung,pins = "gpg1-2"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; @@ -438,6 +628,13 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; }; + magnetometer_i2c_pins: yas529-i2c-pins { + samsung,pins = "gpj0-0", "gpj0-1"; + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + ts_irq: ts-irq { samsung,pins = "gpj0-5"; samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; @@ -445,17 +642,66 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + touchkey_i2c_pins: touchkey-i2c-pins { + samsung,pins = "gpj3-0", "gpj3-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + touchkey_vdd_ena: touchkey-vdd-ena { + samsung,pins = "gpj3-2"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + musb_i2c_pins: musb-i2c-pins { + samsung,pins = "gpj3-4", "gpj3-5"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + accel_i2c_pins: accel-i2c-pins { + samsung,pins = "gpj3-6", "gpj3-7"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + pmic_i2c_pins: pmic-i2c-pins { samsung,pins = "gpj4-0", "gpj4-3"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + touchkey_irq: touchkey-irq { + samsung,pins = "gpj4-1"; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + lcd_spi_pins: spi-lcd-pins { + samsung,pins = "mp01-1", "mp04-1", "mp04-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + fg_i2c_pins: fg-i2c-pins { samsung,pins = "mp05-0", "mp05-1"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + sound_i2c_pins: sound-i2c-pins { + samsung,pins = "mp05-2", "mp05-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + panel_rst: panel-rst { + samsung,pins = "mp05-5"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; }; &pwm { diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index 94dcb9b64b9a..42e6e2de197d 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -278,3 +278,9 @@ PIN_SLP(mp07-7, INPUT, DOWN); }; }; + +&wm8994 { + /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */ + wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101 + 0x0100 0x8100 0x0100 0x0100 0x0100>; +}; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices 2020-04-26 18:35 ` [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices Jonathan Bakker @ 2020-04-28 10:20 ` Krzysztof Kozlowski 2020-04-28 23:32 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-04-28 10:20 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel, Paweł Chmiel On Sun, Apr 26, 2020 at 11:35:57AM -0700, Jonathan Bakker wrote: > Add support for following devices: > - touchkeys connected over i2c-gpio > - s6e63m0 panel connected over spi-gpio > - fsa9480 microusb switch over i2c-gpio > - wm8994 over i2c-gpio (no machine driver yet) > - all common i2c-gpio devices Please split it per functionality, e.g.: 1. Add sound, 2. Add panel, 3. Add touchkeys (unless part of panel), 4. The remaining i2c-gpio devices without bindings could go as one. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> > --- > arch/arm/boot/dts/s5pv210-aries.dtsi | 282 ++++++++++++++++++++-- > arch/arm/boot/dts/s5pv210-fascinate4g.dts | 6 + > 2 files changed, 270 insertions(+), 18 deletions(-) > > diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi > index f83df426f2b6..ef966d13d83d 100644 > --- a/arch/arm/boot/dts/s5pv210-aries.dtsi > +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi > @@ -12,8 +12,14 @@ > compatible = "samsung,aries", "samsung,s5pv210"; > > aliases { > + i2c4 = &i2c_sound; > + i2c5 = &i2c_accel; > i2c6 = &i2c_pmic; > + i2c7 = &i2c_musb; > i2c9 = &i2c_fuel; > + i2c10 = &i2c_touchkey; > + i2c11 = &i2c_prox; > + i2c12 = &i2c_magnetometer; > }; > > memory@30000000 { > @@ -48,6 +54,18 @@ > gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; > }; > > + touchkey_vdd: regulator-fixed-1 { > + compatible = "regulator-fixed"; > + regulator-name = "VTOUCH_3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&touchkey_vdd_ena>; > + }; > + > wifi_pwrseq: wifi-pwrseq { > compatible = "mmc-pwrseq-simple"; > reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; > @@ -57,7 +75,69 @@ > power-off-delay-us = <500>; > }; > > - i2c_pmic: i2c-gpio-0 { > + i2c_sound: i2c-gpio-0 { > + compatible = "i2c-gpio"; > + sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&sound_i2c_pins>; > + > + wm8994: wm8994@1a { > + compatible = "wlf,wm8994"; > + reg = <0x1a>; > + > + #sound-dai-cells = <0>; > + > + gpio-controller; > + #gpio-cells = <2>; > + > + clocks = <&clocks MOUT_CLKOUT>; > + clock-names = "MCLK1"; > + > + AVDD2-supply = <&buck3_reg>; > + DBVDD-supply = <&buck3_reg>; No such supply, check the bindings. > + CPVDD-supply = <&buck3_reg>; > + SPKVDD1-supply = <&buck3_reg>; > + SPKVDD2-supply = <&buck3_reg>; > + > + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 > + 0xa101 0x0100 0x8100 0x0100 0x0100 > + 0x0100>; > + > + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; > + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; > + > + wlf,lineout1-se; > + wlf,lineout2-se; > + > + assigned-clocks = <&clocks MOUT_CLKOUT>; > + assigned-clock-rates = <0>; > + assigned-clock-parents = <&xusbxti>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&codec_ldo>; > + }; > + }; > + > + i2c_accel: i2c-gpio-1 { > + compatible = "i2c-gpio"; > + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&accel_i2c_pins>; > + > + /* bma023 accelerometer, no mainline binding */ status disabled ... unless you need it for user-space I2C tools? > + }; > + > + i2c_pmic: i2c-gpio-2 { > compatible = "i2c-gpio"; > sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > @@ -137,8 +217,6 @@ > regulator-name = "VLCD_1.8V"; > regulator-min-microvolt = <1800000>; > regulator-max-microvolt = <1800000>; > - /* Till we get panel driver */ > - regulator-always-on; > > regulator-state-mem { > regulator-off-in-suspend; > @@ -237,8 +315,6 @@ > regulator-name = "VCC_3.0V_LCD"; > regulator-min-microvolt = <3000000>; > regulator-max-microvolt = <3000000>; > - /* Till we get panel driver */ > - regulator-always-on; > > regulator-state-mem { > regulator-off-in-suspend; > @@ -309,7 +385,26 @@ > }; > }; > > - i2c_fuel: i2c-gpio-1 { > + i2c_musb: i2c-gpio-3 { > + compatible = "i2c-gpio"; > + sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&musb_i2c_pins>; > + > + fsa9480: musb@25 { > + compatible = "fcs,fsa9480"; > + reg = <0x25>; > + interrupt-parent = <&gph2>; > + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; > + }; > + }; > + > + i2c_fuel: i2c-gpio-4 { > compatible = "i2c-gpio"; > sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > @@ -328,6 +423,60 @@ > }; > }; > > + i2c_touchkey: i2c-gpio-5 { > + compatible = "i2c-gpio"; > + sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&touchkey_i2c_pins>; > + > + touchkey@20 { > + compatible = "cypress,aries-touchkey"; > + reg = <0x20>; > + vdd-supply = <&touchkey_vdd>; > + vcc-supply = <&buck3_reg>; > + linux,keycodes = <KEY_MENU KEY_BACK > + KEY_HOMEPAGE KEY_SEARCH>; > + interrupt-parent = <&gpj4>; > + interrupts = <1 IRQ_TYPE_LEVEL_LOW>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&touchkey_irq>; > + }; > + }; > + > + i2c_prox: i2c-gpio-6 { > + compatible = "i2c-gpio"; > + sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&prox_i2c_pins>; > + > + /* Sharp gp2a prox/light sensor, incomplete mainline binding */ The same - disable, unless you access it from user-space. > + }; > + > + i2c_magnetometer: i2c-gpio-7 { > + compatible = "i2c-gpio"; > + sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&magnetometer_i2c_pins>; > + > + /* Yamaha yas529 magnetometer, no mainline binding */ The same - disable, unless you access it from user-space. > + }; > + > vibrator: pwm-vibrator { > compatible = "pwm-vibrator"; > pwms = <&pwm 1 44642 0>; > @@ -343,6 +492,39 @@ > offset = <0x681c>; /* PS_HOLD_CONTROL */ > value = <0x5200>; > }; > + > + spi_lcd: spi-gpio-0 { > + compatible = "spi-gpio"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>; > + mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>; > + cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>; > + num-chipselects = <1>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&lcd_spi_pins>; > + > + panel@0 { > + compatible = "samsung,s6e63m0"; > + reg = <0>; > + reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>; > + vdd3-supply = <&ldo7_reg>; > + vci-supply = <&ldo17_reg>; > + spi-cs-high; > + spi-max-frequency = <1200000>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&panel_rst>; > + > + port { > + lcd_ep: endpoint { > + remote-endpoint = <&fimd_ep>; > + }; > + }; > + }; > + }; > }; > > &fimd { > @@ -353,18 +535,13 @@ > samsung,invert-vden; > samsung,invert-vclk; > > - display-timings { > - timing-0 { > - /* 480x800@60Hz */ > - clock-frequency = <25628040>; > - hactive = <480>; > - vactive = <800>; > - hfront-porch = <16>; > - hback-porch = <16>; > - hsync-len = <2>; > - vfront-porch = <28>; > - vback-porch = <1>; > - vsync-len = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@3 { > + reg = <3>; > + fimd_ep: endpoint { > + remote-endpoint = <&lcd_ep>; > }; > }; > }; > @@ -405,6 +582,19 @@ > samsung,pin-val = <1>; > }; > > + codec_ldo: codec-ldo { > + samsung,pins = "gpf3-4"; > + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + }; > + > + prox_i2c_pins: gp2a-i2c-pins { > + samsung,pins = "gpg0-2", "gpg2-2"; > + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > wlan_gpio_rst: wlan-gpio-rst { > samsung,pins = "gpg1-2"; > samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; > @@ -438,6 +628,13 @@ > samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > }; > > + magnetometer_i2c_pins: yas529-i2c-pins { > + samsung,pins = "gpj0-0", "gpj0-1"; > + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > ts_irq: ts-irq { > samsung,pins = "gpj0-5"; > samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; > @@ -445,17 +642,66 @@ > samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > }; > > + touchkey_i2c_pins: touchkey-i2c-pins { > + samsung,pins = "gpj3-0", "gpj3-1"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + touchkey_vdd_ena: touchkey-vdd-ena { > + samsung,pins = "gpj3-2"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + musb_i2c_pins: musb-i2c-pins { > + samsung,pins = "gpj3-4", "gpj3-5"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + accel_i2c_pins: accel-i2c-pins { > + samsung,pins = "gpj3-6", "gpj3-7"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > pmic_i2c_pins: pmic-i2c-pins { > samsung,pins = "gpj4-0", "gpj4-3"; > samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > }; > > + touchkey_irq: touchkey-irq { > + samsung,pins = "gpj4-1"; > + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; > + samsung,pin-pud = <S3C64XX_PIN_PULL_UP>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + lcd_spi_pins: spi-lcd-pins { > + samsung,pins = "mp01-1", "mp04-1", "mp04-3"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > fg_i2c_pins: fg-i2c-pins { > samsung,pins = "mp05-0", "mp05-1"; > samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > }; > + > + sound_i2c_pins: sound-i2c-pins { > + samsung,pins = "mp05-2", "mp05-3"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + panel_rst: panel-rst { > + samsung,pins = "mp05-5"; > + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > }; > > &pwm { > diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > index 94dcb9b64b9a..42e6e2de197d 100644 > --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts > +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > @@ -278,3 +278,9 @@ > PIN_SLP(mp07-7, INPUT, DOWN); > }; > }; > + > +&wm8994 { > + /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */ > + wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101 > + 0x0100 0x8100 0x0100 0x0100 0x0100>; Indent the line till opening <. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices 2020-04-28 10:20 ` Krzysztof Kozlowski @ 2020-04-28 23:32 ` Jonathan Bakker 2020-05-01 13:31 ` Krzysztof Kozlowski 0 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-28 23:32 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel, Paweł Chmiel Hi Krzysztof, On 2020-04-28 3:20 a.m., Krzysztof Kozlowski wrote: > On Sun, Apr 26, 2020 at 11:35:57AM -0700, Jonathan Bakker wrote: >> Add support for following devices: >> - touchkeys connected over i2c-gpio >> - s6e63m0 panel connected over spi-gpio >> - fsa9480 microusb switch over i2c-gpio >> - wm8994 over i2c-gpio (no machine driver yet) >> - all common i2c-gpio devices > > Please split it per functionality, e.g.: > 1. Add sound, > 2. Add panel, > 3. Add touchkeys (unless part of panel), > 4. The remaining i2c-gpio devices without bindings could go as one. Ok, will do. > >> >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> >> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> >> --- >> arch/arm/boot/dts/s5pv210-aries.dtsi | 282 ++++++++++++++++++++-- >> arch/arm/boot/dts/s5pv210-fascinate4g.dts | 6 + >> 2 files changed, 270 insertions(+), 18 deletions(-) >> >> diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi >> index f83df426f2b6..ef966d13d83d 100644 >> --- a/arch/arm/boot/dts/s5pv210-aries.dtsi >> +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi >> @@ -12,8 +12,14 @@ >> compatible = "samsung,aries", "samsung,s5pv210"; >> >> aliases { >> + i2c4 = &i2c_sound; >> + i2c5 = &i2c_accel; >> i2c6 = &i2c_pmic; >> + i2c7 = &i2c_musb; >> i2c9 = &i2c_fuel; >> + i2c10 = &i2c_touchkey; >> + i2c11 = &i2c_prox; >> + i2c12 = &i2c_magnetometer; >> }; >> >> memory@30000000 { >> @@ -48,6 +54,18 @@ >> gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; >> }; >> >> + touchkey_vdd: regulator-fixed-1 { >> + compatible = "regulator-fixed"; >> + regulator-name = "VTOUCH_3.3V"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + enable-active-high; >> + gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>; >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&touchkey_vdd_ena>; >> + }; >> + >> wifi_pwrseq: wifi-pwrseq { >> compatible = "mmc-pwrseq-simple"; >> reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; >> @@ -57,7 +75,69 @@ >> power-off-delay-us = <500>; >> }; >> >> - i2c_pmic: i2c-gpio-0 { >> + i2c_sound: i2c-gpio-0 { >> + compatible = "i2c-gpio"; >> + sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> + scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> + i2c-gpio,delay-us = <2>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&sound_i2c_pins>; >> + >> + wm8994: wm8994@1a { >> + compatible = "wlf,wm8994"; >> + reg = <0x1a>; >> + >> + #sound-dai-cells = <0>; >> + >> + gpio-controller; >> + #gpio-cells = <2>; >> + >> + clocks = <&clocks MOUT_CLKOUT>; >> + clock-names = "MCLK1"; >> + >> + AVDD2-supply = <&buck3_reg>; >> + DBVDD-supply = <&buck3_reg>; > > No such supply, check the bindings. > Well, it may not be in the bindings, but the driver definitely requires it :) See drivers/mfd/wm8994-core.c What's the best way of dealing with this situation? >> + CPVDD-supply = <&buck3_reg>; >> + SPKVDD1-supply = <&buck3_reg>; >> + SPKVDD2-supply = <&buck3_reg>; >> + >> + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 >> + 0xa101 0x0100 0x8100 0x0100 0x0100 >> + 0x0100>; >> + >> + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; >> + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; >> + >> + wlf,lineout1-se; >> + wlf,lineout2-se; >> + >> + assigned-clocks = <&clocks MOUT_CLKOUT>; >> + assigned-clock-rates = <0>; >> + assigned-clock-parents = <&xusbxti>; >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&codec_ldo>; >> + }; >> + }; >> + >> + i2c_accel: i2c-gpio-1 { >> + compatible = "i2c-gpio"; >> + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> + i2c-gpio,delay-us = <2>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&accel_i2c_pins>; >> + >> + /* bma023 accelerometer, no mainline binding */ > > status disabled ... unless you need it for user-space I2C tools? > Nope, but wanted to add them all in due to adding the si4709 in galaxys. I was having issues with accidentally overwriting previously named nodes (ie having i2c-gpio-0 in both the common dtsi and the device specific dts) so I wanted to get the numbers nailed down. <snip> >> >> &pwm { >> diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> index 94dcb9b64b9a..42e6e2de197d 100644 >> --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts >> @@ -278,3 +278,9 @@ >> PIN_SLP(mp07-7, INPUT, DOWN); >> }; >> }; >> + >> +&wm8994 { >> + /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */ >> + wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101 >> + 0x0100 0x8100 0x0100 0x0100 0x0100>; > > Indent the line till opening <. Will do. > > Best regards, > Krzysztof > Thanks, Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices 2020-04-28 23:32 ` Jonathan Bakker @ 2020-05-01 13:31 ` Krzysztof Kozlowski 2020-05-01 19:43 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-05-01 13:31 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel, Paweł Chmiel On Tue, Apr 28, 2020 at 04:32:56PM -0700, Jonathan Bakker wrote: > Hi Krzysztof, > > On 2020-04-28 3:20 a.m., Krzysztof Kozlowski wrote: > > On Sun, Apr 26, 2020 at 11:35:57AM -0700, Jonathan Bakker wrote: > >> Add support for following devices: > >> - touchkeys connected over i2c-gpio > >> - s6e63m0 panel connected over spi-gpio > >> - fsa9480 microusb switch over i2c-gpio > >> - wm8994 over i2c-gpio (no machine driver yet) > >> - all common i2c-gpio devices > > > > Please split it per functionality, e.g.: > > 1. Add sound, > > 2. Add panel, > > 3. Add touchkeys (unless part of panel), > > 4. The remaining i2c-gpio devices without bindings could go as one. > > Ok, will do. > > > > >> > >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > >> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> > >> --- > >> arch/arm/boot/dts/s5pv210-aries.dtsi | 282 ++++++++++++++++++++-- > >> arch/arm/boot/dts/s5pv210-fascinate4g.dts | 6 + > >> 2 files changed, 270 insertions(+), 18 deletions(-) > >> > >> diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi > >> index f83df426f2b6..ef966d13d83d 100644 > >> --- a/arch/arm/boot/dts/s5pv210-aries.dtsi > >> +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi > >> @@ -12,8 +12,14 @@ > >> compatible = "samsung,aries", "samsung,s5pv210"; > >> > >> aliases { > >> + i2c4 = &i2c_sound; > >> + i2c5 = &i2c_accel; > >> i2c6 = &i2c_pmic; > >> + i2c7 = &i2c_musb; > >> i2c9 = &i2c_fuel; > >> + i2c10 = &i2c_touchkey; > >> + i2c11 = &i2c_prox; > >> + i2c12 = &i2c_magnetometer; > >> }; > >> > >> memory@30000000 { > >> @@ -48,6 +54,18 @@ > >> gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; > >> }; > >> > >> + touchkey_vdd: regulator-fixed-1 { > >> + compatible = "regulator-fixed"; > >> + regulator-name = "VTOUCH_3.3V"; > >> + regulator-min-microvolt = <3300000>; > >> + regulator-max-microvolt = <3300000>; > >> + enable-active-high; > >> + gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>; > >> + > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&touchkey_vdd_ena>; > >> + }; > >> + > >> wifi_pwrseq: wifi-pwrseq { > >> compatible = "mmc-pwrseq-simple"; > >> reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; > >> @@ -57,7 +75,69 @@ > >> power-off-delay-us = <500>; > >> }; > >> > >> - i2c_pmic: i2c-gpio-0 { > >> + i2c_sound: i2c-gpio-0 { > >> + compatible = "i2c-gpio"; > >> + sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > >> + scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > >> + i2c-gpio,delay-us = <2>; > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&sound_i2c_pins>; > >> + > >> + wm8994: wm8994@1a { > >> + compatible = "wlf,wm8994"; > >> + reg = <0x1a>; > >> + > >> + #sound-dai-cells = <0>; > >> + > >> + gpio-controller; > >> + #gpio-cells = <2>; > >> + > >> + clocks = <&clocks MOUT_CLKOUT>; > >> + clock-names = "MCLK1"; > >> + > >> + AVDD2-supply = <&buck3_reg>; > >> + DBVDD-supply = <&buck3_reg>; > > > > No such supply, check the bindings. > > > > Well, it may not be in the bindings, but the driver definitely requires it :) See drivers/mfd/wm8994-core.c > > What's the best way of dealing with this situation? I'll send a patch fixing the bindings. However don't you miss the AVDD1-supply in such case? Driver should report error. > > >> + CPVDD-supply = <&buck3_reg>; > >> + SPKVDD1-supply = <&buck3_reg>; > >> + SPKVDD2-supply = <&buck3_reg>; > >> + > >> + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 > >> + 0xa101 0x0100 0x8100 0x0100 0x0100 > >> + 0x0100>; > >> + > >> + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; > >> + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; > >> + > >> + wlf,lineout1-se; > >> + wlf,lineout2-se; > >> + > >> + assigned-clocks = <&clocks MOUT_CLKOUT>; > >> + assigned-clock-rates = <0>; > >> + assigned-clock-parents = <&xusbxti>; > >> + > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&codec_ldo>; > >> + }; > >> + }; > >> + > >> + i2c_accel: i2c-gpio-1 { > >> + compatible = "i2c-gpio"; > >> + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > >> + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > >> + i2c-gpio,delay-us = <2>; > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + pinctrl-names = "default"; > >> + pinctrl-0 = <&accel_i2c_pins>; > >> + > >> + /* bma023 accelerometer, no mainline binding */ > > > > status disabled ... unless you need it for user-space I2C tools? > > > > Nope, but wanted to add them all in due to adding the si4709 in galaxys. I was having > issues with accidentally overwriting previously named nodes (ie having i2c-gpio-0 in > both the common dtsi and the device specific dts) so I wanted to get the numbers > nailed down. So add them with status disabled. This will document the HW without enabling empty I2C GPIO bus. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices 2020-05-01 13:31 ` Krzysztof Kozlowski @ 2020-05-01 19:43 ` Jonathan Bakker 0 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 19:43 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel, Paweł Chmiel Hi Krzysztof, On 2020-05-01 6:31 a.m., Krzysztof Kozlowski wrote: >> >> Well, it may not be in the bindings, but the driver definitely requires it :) See drivers/mfd/wm8994-core.c >> >> What's the best way of dealing with this situation? > > I'll send a patch fixing the bindings. However don't you miss the > AVDD1-supply in such case? Driver should report error. > Thanks for sending the patch. AVDD1 and DCVDD are provided internally, via drivers/regulator/wm8994.c and are enabled by wlf,ldo1ena and wlf,ldo2ena pins. It's a bit messy, but that's how it's done. >> >>>> + CPVDD-supply = <&buck3_reg>; >>>> + SPKVDD1-supply = <&buck3_reg>; >>>> + SPKVDD2-supply = <&buck3_reg>; >>>> + >>>> + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 >>>> + 0xa101 0x0100 0x8100 0x0100 0x0100 >>>> + 0x0100>; >>>> + >>>> + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; >>>> + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; >>>> + >>>> + wlf,lineout1-se; >>>> + wlf,lineout2-se; >>>> + >>>> + assigned-clocks = <&clocks MOUT_CLKOUT>; >>>> + assigned-clock-rates = <0>; >>>> + assigned-clock-parents = <&xusbxti>; >>>> + >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&codec_ldo>; >>>> + }; >>>> + }; >>>> + >>>> + i2c_accel: i2c-gpio-1 { >>>> + compatible = "i2c-gpio"; >>>> + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >>>> + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >>>> + i2c-gpio,delay-us = <2>; >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&accel_i2c_pins>; >>>> + >>>> + /* bma023 accelerometer, no mainline binding */ >>> >>> status disabled ... unless you need it for user-space I2C tools? >>> >> >> Nope, but wanted to add them all in due to adding the si4709 in galaxys. I was having >> issues with accidentally overwriting previously named nodes (ie having i2c-gpio-0 in >> both the common dtsi and the device specific dts) so I wanted to get the numbers >> nailed down. > > So add them with status disabled. This will document the HW without > enabling empty I2C GPIO bus. Sounds good, will do. > > Best regards, > Krzysztof > Thanks, Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH 07/13] arm: dts: s5pv210: galaxys: Add si470x fmradio [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (5 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 08/13] arm: dts: s5pv210: aries: Disable pull for vibrator ena GPIO Jonathan Bakker ` (7 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Paweł Chmiel, Jonathan Bakker From: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> Add support for the Silicon Labs si4709 fmradio, which can be found on Galaxy S GT-i9000 (but not most other Galaxy S variants). Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 2 +- arch/arm/boot/dts/s5pv210-galaxys.dts | 47 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index ef966d13d83d..12575d64aa06 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -11,7 +11,7 @@ / { compatible = "samsung,aries", "samsung,s5pv210"; - aliases { + aliases: aliases { i2c4 = &i2c_sound; i2c5 = &i2c_accel; i2c6 = &i2c_pmic; diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index 2eff1e66a2a5..f5c13eb8ae71 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -49,12 +49,59 @@ wakeup-source; }; }; + + i2c_fmradio: i2c-gpio-8 { + compatible = "i2c-gpio"; + sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&fm_i2c_pins>; + + fmradio@10 { + compatible = "silabs,si470x"; + reg = <0x10>; + interrupt-parent = <&gpj2>; + interrupts = <4 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&fm_irq &fm_rst>; + }; + }; +}; + +&aliases { + i2c8 = &i2c_fmradio; }; &pinctrl0 { pinctrl-names = "default"; pinctrl-0 = <&sleep_cfg>; + fm_i2c_pins: fm-i2c-pins { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fm_irq: fm-irq { + samsung,pins = "gpj2-4"; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fm_rst: fm-rst { + samsung,pins = "gpj2-5"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + massmemory_en: massmemory-en { samsung,pins = "gpj2-7"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 08/13] arm: dts: s5pv210: aries: Disable pull for vibrator ena GPIO [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (6 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 07/13] arm: dts: s5pv210: galaxys: Add si470x fmradio Jonathan Bakker @ 2020-04-26 18:35 ` Jonathan Bakker 2020-04-26 18:36 ` [PATCH 09/13] arm: dts: s5pv210: Add an ADC node Jonathan Bakker ` (6 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:35 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The enable GPIO for the fixed vibrator regulator shouldn't be pulled in one direction or the other. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 12575d64aa06..f30bdcb9c083 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -52,6 +52,9 @@ regulator-name = "vibrator-en"; enable-active-high; gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctr-0 = <&vibrator_ena>; }; touchkey_vdd: regulator-fixed-1 { @@ -642,6 +645,12 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + vibrator_ena: vibrator-ena { + samsung,pins = "gpj1-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + touchkey_i2c_pins: touchkey-i2c-pins { samsung,pins = "gpj3-0", "gpj3-1"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 09/13] arm: dts: s5pv210: Add an ADC node [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (7 preceding siblings ...) 2020-04-26 18:35 ` [PATCH 08/13] arm: dts: s5pv210: aries: Disable pull for vibrator ena GPIO Jonathan Bakker @ 2020-04-26 18:36 ` Jonathan Bakker 2020-04-28 10:26 ` Krzysztof Kozlowski 2020-04-26 18:36 ` [PATCH 10/13] arm: dts: s5pv210: aries: Enable " Jonathan Bakker ` (5 subsequent siblings) 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:36 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The exynos-adc driver now supports the S5PV210, so add the DT node so that devices can use it. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi index 2ad642f51fd9..b3b6ad2889f9 100644 --- a/arch/arm/boot/dts/s5pv210.dtsi +++ b/arch/arm/boot/dts/s5pv210.dtsi @@ -159,6 +159,18 @@ }; }; + adc: adc@126c0000 { + compatible = "samsung,s5pv210-adc"; + reg = <0xe1700000 0x1000>; + interrupt-parent = <&vic2>; + interrupts = <23>, <24>; + clocks = <&clocks CLK_TSADC>; + clock-names = "adc"; + #io-channel-cells = <1>; + io-channel-ranges; + status = "disabled"; + }; + spi0: spi@e1300000 { compatible = "samsung,s5pv210-spi"; reg = <0xe1300000 0x1000>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH 09/13] arm: dts: s5pv210: Add an ADC node 2020-04-26 18:36 ` [PATCH 09/13] arm: dts: s5pv210: Add an ADC node Jonathan Bakker @ 2020-04-28 10:26 ` Krzysztof Kozlowski 2020-04-28 22:27 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-04-28 10:26 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Sun, Apr 26, 2020 at 11:36:00AM -0700, Jonathan Bakker wrote: > The exynos-adc driver now supports the S5PV210, so add the DT > node so that devices can use it. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > --- > arch/arm/boot/dts/s5pv210.dtsi | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi > index 2ad642f51fd9..b3b6ad2889f9 100644 > --- a/arch/arm/boot/dts/s5pv210.dtsi > +++ b/arch/arm/boot/dts/s5pv210.dtsi > @@ -159,6 +159,18 @@ > }; > }; > > + adc: adc@126c0000 { > + compatible = "samsung,s5pv210-adc"; > + reg = <0xe1700000 0x1000>; reg does not match the node address. Run "make dtbs W=1" and be sure there are no new warnings. Best regards, Krzysztof > + interrupt-parent = <&vic2>; > + interrupts = <23>, <24>; > + clocks = <&clocks CLK_TSADC>; > + clock-names = "adc"; > + #io-channel-cells = <1>; > + io-channel-ranges; > + status = "disabled"; > + }; > + > spi0: spi@e1300000 { > compatible = "samsung,s5pv210-spi"; > reg = <0xe1300000 0x1000>; > -- > 2.20.1 > ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 09/13] arm: dts: s5pv210: Add an ADC node 2020-04-28 10:26 ` Krzysztof Kozlowski @ 2020-04-28 22:27 ` Jonathan Bakker 0 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-28 22:27 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Hi Krzysztof, On 2020-04-28 3:26 a.m., Krzysztof Kozlowski wrote: > On Sun, Apr 26, 2020 at 11:36:00AM -0700, Jonathan Bakker wrote: >> The exynos-adc driver now supports the S5PV210, so add the DT >> node so that devices can use it. >> >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> >> --- >> arch/arm/boot/dts/s5pv210.dtsi | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi >> index 2ad642f51fd9..b3b6ad2889f9 100644 >> --- a/arch/arm/boot/dts/s5pv210.dtsi >> +++ b/arch/arm/boot/dts/s5pv210.dtsi >> @@ -159,6 +159,18 @@ >> }; >> }; >> >> + adc: adc@126c0000 { >> + compatible = "samsung,s5pv210-adc"; >> + reg = <0xe1700000 0x1000>; > > reg does not match the node address. > > Run "make dtbs W=1" and be sure there are no new warnings. Thanks, will change for v2. > > Best regards, > Krzysztof > > >> + interrupt-parent = <&vic2>; >> + interrupts = <23>, <24>; >> + clocks = <&clocks CLK_TSADC>; >> + clock-names = "adc"; >> + #io-channel-cells = <1>; >> + io-channel-ranges; >> + status = "disabled"; >> + }; >> + >> spi0: spi@e1300000 { >> compatible = "samsung,s5pv210-spi"; >> reg = <0xe1300000 0x1000>; >> -- >> 2.20.1 >> Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH 10/13] arm: dts: s5pv210: aries: Enable ADC node [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (8 preceding siblings ...) 2020-04-26 18:36 ` [PATCH 09/13] arm: dts: s5pv210: Add an ADC node Jonathan Bakker @ 2020-04-26 18:36 ` Jonathan Bakker 2020-04-28 10:29 ` Krzysztof Kozlowski 2020-04-26 18:36 ` [PATCH 11/13] arm: dts: s5pv210: Assign clocks to MMC devices Jonathan Bakker ` (4 subsequent siblings) 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:36 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker On aries boards, the ADC is used for things such as jack detection and battery temperature monitoring. It is connected to ldo4 of max8998, so only enable that regulator when we are actually using the ADC. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index f30bdcb9c083..a103ddb0d720 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -193,11 +193,6 @@ regulator-name = "VADC_3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-always-on; - - regulator-state-mem { - regulator-off-in-suspend; - }; }; ldo5_reg: LDO5 { @@ -530,6 +525,12 @@ }; }; +&adc { + vdd-supply = <&ldo4_reg>; + + status = "okay"; +}; + &fimd { pinctrl-names = "default"; pinctrl-0 = <&lcd_clk &lcd_data24>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH 10/13] arm: dts: s5pv210: aries: Enable ADC node 2020-04-26 18:36 ` [PATCH 10/13] arm: dts: s5pv210: aries: Enable " Jonathan Bakker @ 2020-04-28 10:29 ` Krzysztof Kozlowski 2020-04-28 22:26 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-04-28 10:29 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Sun, Apr 26, 2020 at 11:36:01AM -0700, Jonathan Bakker wrote: > On aries boards, the ADC is used for things such as jack detection > and battery temperature monitoring. It is connected to ldo4 of max8998, > so only enable that regulator when we are actually using the ADC. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > --- > arch/arm/boot/dts/s5pv210-aries.dtsi | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi > index f30bdcb9c083..a103ddb0d720 100644 > --- a/arch/arm/boot/dts/s5pv210-aries.dtsi > +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi > @@ -193,11 +193,6 @@ > regulator-name = "VADC_3.3V"; > regulator-min-microvolt = <3300000>; > regulator-max-microvolt = <3300000>; > - regulator-always-on; > - > - regulator-state-mem { > - regulator-off-in-suspend; > - }; I would expect to keep it disabled during suspend. Why you had to remove this part? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 10/13] arm: dts: s5pv210: aries: Enable ADC node 2020-04-28 10:29 ` Krzysztof Kozlowski @ 2020-04-28 22:26 ` Jonathan Bakker 0 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-28 22:26 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Hi Krzysztof, On 2020-04-28 3:29 a.m., Krzysztof Kozlowski wrote: > On Sun, Apr 26, 2020 at 11:36:01AM -0700, Jonathan Bakker wrote: >> On aries boards, the ADC is used for things such as jack detection >> and battery temperature monitoring. It is connected to ldo4 of max8998, >> so only enable that regulator when we are actually using the ADC. >> >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> >> --- >> arch/arm/boot/dts/s5pv210-aries.dtsi | 11 ++++++----- >> 1 file changed, 6 insertions(+), 5 deletions(-) >> >> diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi >> index f30bdcb9c083..a103ddb0d720 100644 >> --- a/arch/arm/boot/dts/s5pv210-aries.dtsi >> +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi >> @@ -193,11 +193,6 @@ >> regulator-name = "VADC_3.3V"; >> regulator-min-microvolt = <3300000>; >> regulator-max-microvolt = <3300000>; >> - regulator-always-on; >> - >> - regulator-state-mem { >> - regulator-off-in-suspend; >> - }; > > I would expect to keep it disabled during suspend. Why you had to remove > this part? It was my thinking that if nothing was using it, then it would automatically be disabled and stay that way over suspend. However, looking at things again, it does make sense to make sure that it is disabled as it serves no purpose to stay enabled over suspend. I'll remove this change for v2. > > Best regards, > Krzysztof > Thanks, Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH 11/13] arm: dts: s5pv210: Assign clocks to MMC devices [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (9 preceding siblings ...) 2020-04-26 18:36 ` [PATCH 10/13] arm: dts: s5pv210: aries: Enable " Jonathan Bakker @ 2020-04-26 18:36 ` Jonathan Bakker 2020-04-26 18:36 ` [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions Jonathan Bakker ` (3 subsequent siblings) 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:36 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The SHDCI controller on aries devices is a little bit peculiar about the clocks and with a slightly off clock can run into errors such as [ 141.533993] mmc2: ADMA error: 0x02000000 [ 141.535137] mmc2: sdhci: ============ SDHCI REGISTER DUMP =========== [ 141.540246] mmc2: sdhci: Sys addr: 0x347e4cc4 | Version: 0x00002401 [ 141.545358] mmc2: sdhci: Blk size: 0x00007004 | Blk cnt: 0x0000fffc [ 141.550470] mmc2: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013 [ 141.555583] mmc2: sdhci: Present: 0x01fa0000 | Host ctl: 0x00000012 [ 141.560696] mmc2: sdhci: Power: 0x00000000 | Blk gap: 0x00000000 [ 141.565809] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x0000010f [ 141.570921] mmc2: sdhci: Timeout: 0x0000000a | Int stat: 0x00000003 [ 141.576034] mmc2: sdhci: Int enab: 0x03ff004b | Sig enab: 0x03ff004b [ 141.581147] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001 [ 141.586259] mmc2: sdhci: Caps: 0x05e80080 | Caps_1: 0x00000000 [ 141.591372] mmc2: sdhci: Cmd: 0x0000163a | Max curr: 0x00000000 [ 141.596485] mmc2: sdhci: Resp[0]: 0x00000920 | Resp[1]: 0x00000000 [ 141.601597] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000 [ 141.606710] mmc2: sdhci: Host ctl2: 0x00000000 [ 141.609831] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x349a3208 [ 141.614942] mmc2: sdhci: ============================================ [ 141.620057] mmc2: sdhci: 349a3200: DMA 0x347e4cc0, LEN 0x0004, Attr=0x23 Specifically assign the mmc sclks to be parented from MPLL with specific rates that match the vendor kernel. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 8 ++++++++ arch/arm/boot/dts/s5pv210-galaxys.dts | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index a103ddb0d720..7e113d750b97 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -734,6 +734,10 @@ non-removable; status = "okay"; + assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>; + assigned-clock-rates = <0>, <50000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; + wlan@1 { reg = <1>; compatible = "brcm,bcm4329-fmac"; @@ -750,6 +754,10 @@ pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>; pinctrl-names = "default"; status = "okay"; + + assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>; + assigned-clock-rates = <0>, <50000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; }; &uart0 { diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index f5c13eb8ae71..6958fe040106 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -354,4 +354,8 @@ pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; pinctrl-names = "default"; status = "okay"; + + assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>; + assigned-clock-rates = <0>, <52000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; }; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (10 preceding siblings ...) 2020-04-26 18:36 ` [PATCH 11/13] arm: dts: s5pv210: Assign clocks to MMC devices Jonathan Bakker @ 2020-04-26 18:36 ` Jonathan Bakker 2020-04-28 10:32 ` Krzysztof Kozlowski 2020-04-26 18:36 ` [PATCH 13/13] arm: dts: s5pv210: aries: Set MAX8998 GPIO pulls Jonathan Bakker ` (2 subsequent siblings) 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:36 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The extended mainscaler is only available on FIMC1 and there are minimum pixel alignments that differ from the default. Additionally, the cam-if interface is available on all three while FIMC2 has no rotators. The lcd-wb interface is supported on FIMC1. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210.dtsi | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi index b3b6ad2889f9..3cbf6c05f42a 100644 --- a/arch/arm/boot/dts/s5pv210.dtsi +++ b/arch/arm/boot/dts/s5pv210.dtsi @@ -626,7 +626,7 @@ clock-names = "fimc", "sclk_fimc"; samsung,pix-limits = <4224 8192 1920 4224>; - samsung,mainscaler-ext; + samsung,min-pix-alignment = <16 8>; samsung,cam-if; }; @@ -639,9 +639,11 @@ <&clocks SCLK_FIMC1>; clock-names = "fimc", "sclk_fimc"; - samsung,pix-limits = <4224 8192 1920 4224>; samsung,mainscaler-ext; + samsung,min-pix-alignment = <1 1>; + samsung,pix-limits = <4224 8192 1920 4224>; samsung,cam-if; + samsung,lcd-wb; }; fimc2: fimc@fb400000 { @@ -653,9 +655,10 @@ <&clocks SCLK_FIMC2>; clock-names = "fimc", "sclk_fimc"; - samsung,pix-limits = <4224 8192 1920 4224>; - samsung,mainscaler-ext; - samsung,lcd-wb; + samsung,pix-limits = <1920 8192 1280 1920>; + samsung,min-pix-alignment = <16 8>; + samsung,rotators = <0>; + samsung,cam-if; }; }; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions 2020-04-26 18:36 ` [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions Jonathan Bakker @ 2020-04-28 10:32 ` Krzysztof Kozlowski 2020-04-28 22:31 ` Jonathan Bakker 0 siblings, 1 reply; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-04-28 10:32 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Sun, Apr 26, 2020 at 11:36:03AM -0700, Jonathan Bakker wrote: > The extended mainscaler is only available on FIMC1 and there > are minimum pixel alignments that differ from the default. > Additionally, the cam-if interface is available on all three > while FIMC2 has no rotators. The lcd-wb interface is supported > on FIMC1. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > --- > arch/arm/boot/dts/s5pv210.dtsi | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi > index b3b6ad2889f9..3cbf6c05f42a 100644 > --- a/arch/arm/boot/dts/s5pv210.dtsi > +++ b/arch/arm/boot/dts/s5pv210.dtsi > @@ -626,7 +626,7 @@ > clock-names = "fimc", > "sclk_fimc"; > samsung,pix-limits = <4224 8192 1920 4224>; > - samsung,mainscaler-ext; > + samsung,min-pix-alignment = <16 8>; > samsung,cam-if; > }; > > @@ -639,9 +639,11 @@ > <&clocks SCLK_FIMC1>; > clock-names = "fimc", > "sclk_fimc"; > - samsung,pix-limits = <4224 8192 1920 4224>; > samsung,mainscaler-ext; > + samsung,min-pix-alignment = <1 1>; > + samsung,pix-limits = <4224 8192 1920 4224>; The line just moved around. I guess this was not intended? Best regards, Krzysztof > samsung,cam-if; > + samsung,lcd-wb; > }; > > fimc2: fimc@fb400000 { > @@ -653,9 +655,10 @@ > <&clocks SCLK_FIMC2>; > clock-names = "fimc", > "sclk_fimc"; > - samsung,pix-limits = <4224 8192 1920 4224>; > - samsung,mainscaler-ext; > - samsung,lcd-wb; > + samsung,pix-limits = <1920 8192 1280 1920>; > + samsung,min-pix-alignment = <16 8>; > + samsung,rotators = <0>; > + samsung,cam-if; > }; > }; > > -- > 2.20.1 > ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions 2020-04-28 10:32 ` Krzysztof Kozlowski @ 2020-04-28 22:31 ` Jonathan Bakker 0 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-28 22:31 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Hi Krzysztof, On 2020-04-28 3:32 a.m., Krzysztof Kozlowski wrote: > On Sun, Apr 26, 2020 at 11:36:03AM -0700, Jonathan Bakker wrote: >> The extended mainscaler is only available on FIMC1 and there >> are minimum pixel alignments that differ from the default. >> Additionally, the cam-if interface is available on all three >> while FIMC2 has no rotators. The lcd-wb interface is supported >> on FIMC1. >> >> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> >> --- >> arch/arm/boot/dts/s5pv210.dtsi | 13 ++++++++----- >> 1 file changed, 8 insertions(+), 5 deletions(-) >> >> diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi >> index b3b6ad2889f9..3cbf6c05f42a 100644 >> --- a/arch/arm/boot/dts/s5pv210.dtsi >> +++ b/arch/arm/boot/dts/s5pv210.dtsi >> @@ -626,7 +626,7 @@ >> clock-names = "fimc", >> "sclk_fimc"; >> samsung,pix-limits = <4224 8192 1920 4224>; >> - samsung,mainscaler-ext; >> + samsung,min-pix-alignment = <16 8>; >> samsung,cam-if; >> }; >> >> @@ -639,9 +639,11 @@ >> <&clocks SCLK_FIMC1>; >> clock-names = "fimc", >> "sclk_fimc"; >> - samsung,pix-limits = <4224 8192 1920 4224>; >> samsung,mainscaler-ext; >> + samsung,min-pix-alignment = <1 1>; >> + samsung,pix-limits = <4224 8192 1920 4224>; > > The line just moved around. I guess this was not intended? Correct, will fix in v2. > > Best regards, > Krzysztof > Thanks, Jonathan ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH 13/13] arm: dts: s5pv210: aries: Set MAX8998 GPIO pulls [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (11 preceding siblings ...) 2020-04-26 18:36 ` [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions Jonathan Bakker @ 2020-04-26 18:36 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 00/18] S5PV210 and Aries DTS improvements Jonathan Bakker [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> 14 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-04-26 18:36 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker Make sure that the GPIOs are configured correctly for the interrupt (otherwise it won't fire) and disable the pulls on the DVS GPIOs which are outputs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 7e113d750b97..000f582e9a0b 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -167,6 +167,9 @@ max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>; max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_dvs_pins &pmic_irq>; + regulators { ldo2_reg: LDO2 { regulator-name = "VALIVE_1.2V"; @@ -605,6 +608,21 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; }; + pmic_dvs_pins: pmic-dvs-pins { + samsung,pins = "gph0-3", "gph0-4", "gph0-5"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + samsung,pin-val = <0>; + }; + + pmic_irq: pmic-irq { + samsung,pins = "gph0-7"; + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + wifi_host_wake: wifi-host-wake { samsung,pins = "gph2-4"; samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 00/18] S5PV210 and Aries DTS improvements [not found] <20200426183604.28494-1-xc-racer2@live.ca> ` (12 preceding siblings ...) 2020-04-26 18:36 ` [PATCH 13/13] arm: dts: s5pv210: aries: Set MAX8998 GPIO pulls Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-04 15:15 ` Krzysztof Kozlowski [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> 14 siblings, 1 reply; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker This patchset makes several improvements to Aries devices which are based on S5PV210. Several pulls on GPIOs were incorrect/not specified, sleep GPIO configurations have been added, and more devices have been added. Touching the common S5PV210 DTSI are the addition of the ADC node as well as fixes to the FIMC definitions and a sleep GPIO helper added. The GPI gpio node name has been corrected. The patches have been tested on both a GT-i9000 as well as an SGH-T959P and both can now suspend/resume properly. Changes from v1: - Correct ADC node name to match reg - Restore removed regulator suspend state - Split commit adding support for new devices into separate commits for each device - Add note where sleep gpio cfgs come from - Ensure subject of all patches matches subsystem - Add patch correcting GPI node name Jonathan Bakker (17): ARM: dts: s5pv210: Add helper define for sleep gpio config ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries ARM: dts: s5pv210: Add WM8994 support to aries boards ARM: dts: s5pv210: Add FSA9480 support to Aries boards ARM: dts: s5pv210: Add touchkey support to aries boards ARM: dts: s5pv210: Add panel support to aries boards ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries ARM: dts: s5pv210: Add an ADC node ARM: dts: s5pv210: Enable ADC on aries boards ARM: dts: s5pv210: Assign clocks to MMC devices on aries ARM: dts: s5pv210: Correct FIMC definitions ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries ARM: dts: s5pv210: Correct gpi gpio node name Paweł Chmiel (1): ARM: dts: s5pv210: Add si470x fmradio to galaxys arch/arm/boot/dts/s5pv210-aries.dtsi | 359 ++++++++++++++++++++-- arch/arm/boot/dts/s5pv210-fascinate4g.dts | 249 +++++++++++++++ arch/arm/boot/dts/s5pv210-galaxys.dts | 292 ++++++++++++++++++ arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 9 +- arch/arm/boot/dts/s5pv210.dtsi | 23 +- 5 files changed, 907 insertions(+), 25 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2 00/18] S5PV210 and Aries DTS improvements 2020-05-01 23:50 ` [PATCH v2 00/18] S5PV210 and Aries DTS improvements Jonathan Bakker @ 2020-05-04 15:15 ` Krzysztof Kozlowski 0 siblings, 0 replies; 46+ messages in thread From: Krzysztof Kozlowski @ 2020-05-04 15:15 UTC (permalink / raw) To: Jonathan Bakker Cc: kgene, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel On Fri, May 01, 2020 at 04:50:01PM -0700, Jonathan Bakker wrote: > This patchset makes several improvements to Aries devices which are > based on S5PV210. Several pulls on GPIOs were incorrect/not specified, > sleep GPIO configurations have been added, and more devices have been > added. > > Touching the common S5PV210 DTSI are the addition of the ADC node > as well as fixes to the FIMC definitions and a sleep GPIO helper > added. The GPI gpio node name has been corrected. > > The patches have been tested on both a GT-i9000 as well as an > SGH-T959P and both can now suspend/resume properly. > > Changes from v1: > - Correct ADC node name to match reg > - Restore removed regulator suspend state > - Split commit adding support for new devices into separate commits > for each device > - Add note where sleep gpio cfgs come from > - Ensure subject of all patches matches subsystem > - Add patch correcting GPI node name > > > Jonathan Bakker (17): > ARM: dts: s5pv210: Add helper define for sleep gpio config > ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g > ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys > ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries > ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries > ARM: dts: s5pv210: Add WM8994 support to aries boards > ARM: dts: s5pv210: Add FSA9480 support to Aries boards > ARM: dts: s5pv210: Add touchkey support to aries boards > ARM: dts: s5pv210: Add panel support to aries boards > ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries > ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries > ARM: dts: s5pv210: Add an ADC node > ARM: dts: s5pv210: Enable ADC on aries boards > ARM: dts: s5pv210: Assign clocks to MMC devices on aries > ARM: dts: s5pv210: Correct FIMC definitions > ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries > ARM: dts: s5pv210: Correct gpi gpio node name > > Paweł Chmiel (1): > ARM: dts: s5pv210: Add si470x fmradio to galaxys > Nice job! Thanks, I applied entire set. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20200501235019.24022-1-xc-racer2@live.ca>]
* [PATCH v2 01/18] ARM: dts: s5pv210: Add helper define for sleep gpio config [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 02/18] ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g Jonathan Bakker ` (16 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker To simplify writing of sleep gpio configs, add a common helper similar to what is present for other Samsung CPUs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi index 7f0c9d447871..609f323d0805 100644 --- a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi +++ b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi @@ -18,6 +18,13 @@ #include <dt-bindings/pinctrl/samsung.h> +#define PIN_SLP(_pin, _mode, _pull) \ + _pin { \ + samsung,pins = #_pin; \ + samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>; \ + samsung,pin-pud-pdn = <S3C64XX_PIN_PULL_ ##_pull>; \ + } + &pinctrl0 { gpa0: gpa0 { gpio-controller; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 02/18] ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> 2020-05-01 23:50 ` [PATCH v2 01/18] ARM: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 03/18] ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys Jonathan Bakker ` (15 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker In order to minimize leakage current during sleep, set a config for sleep GPIOs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- Changes from v1 - Note where sleep GPIOs came from --- arch/arm/boot/dts/s5pv210-fascinate4g.dts | 243 ++++++++++++++++++++++ 1 file changed, 243 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index 07a8d9bbe5b8..65f589e2b72a 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -36,3 +36,246 @@ }; }; }; + +&pinctrl0 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep_cfg>; + + /* Based on vendor kernel v2.6.35.7 */ + sleep_cfg: sleep-cfg { + PIN_SLP(gpa0-0, PREV, NONE); + PIN_SLP(gpa0-1, PREV, NONE); + PIN_SLP(gpa0-2, PREV, NONE); + PIN_SLP(gpa0-3, OUT1, NONE); + PIN_SLP(gpa0-4, PREV, NONE); + PIN_SLP(gpa0-5, PREV, NONE); + PIN_SLP(gpa0-6, PREV, NONE); + PIN_SLP(gpa0-7, PREV, NONE); + + PIN_SLP(gpa1-0, INPUT, DOWN); + PIN_SLP(gpa1-1, OUT0, NONE); + PIN_SLP(gpa1-2, INPUT, DOWN); + PIN_SLP(gpa1-3, OUT0, NONE); + + PIN_SLP(gpb-0, OUT0, NONE); + PIN_SLP(gpb-1, OUT1, NONE); + PIN_SLP(gpb-2, OUT0, NONE); + PIN_SLP(gpb-3, PREV, NONE); + PIN_SLP(gpb-4, INPUT, NONE); + PIN_SLP(gpb-5, PREV, NONE); + PIN_SLP(gpb-6, INPUT, DOWN); + PIN_SLP(gpb-7, OUT0, NONE); + + PIN_SLP(gpc0-0, OUT0, NONE); + PIN_SLP(gpc0-1, INPUT, DOWN); + PIN_SLP(gpc0-2, OUT0, NONE); + PIN_SLP(gpc0-3, INPUT, DOWN); + PIN_SLP(gpc0-4, OUT0, NONE); + + PIN_SLP(gpc1-0, INPUT, DOWN); + PIN_SLP(gpc1-1, INPUT, DOWN); + PIN_SLP(gpc1-2, INPUT, DOWN); + PIN_SLP(gpc1-3, INPUT, DOWN); + PIN_SLP(gpc1-4, INPUT, DOWN); + + PIN_SLP(gpd0-0, INPUT, DOWN); + PIN_SLP(gpd0-1, OUT0, NONE); + PIN_SLP(gpd0-2, INPUT, DOWN); + PIN_SLP(gpd0-3, INPUT, DOWN); + + PIN_SLP(gpd1-0, INPUT, NONE); + PIN_SLP(gpd1-1, INPUT, NONE); + PIN_SLP(gpd1-2, INPUT, DOWN); + PIN_SLP(gpd1-3, INPUT, DOWN); + PIN_SLP(gpd1-4, INPUT, DOWN); + PIN_SLP(gpd1-5, INPUT, DOWN); + + PIN_SLP(gpe0-0, INPUT, DOWN); + PIN_SLP(gpe0-1, INPUT, DOWN); + PIN_SLP(gpe0-2, INPUT, DOWN); + PIN_SLP(gpe0-3, INPUT, DOWN); + PIN_SLP(gpe0-4, INPUT, DOWN); + PIN_SLP(gpe0-5, INPUT, DOWN); + PIN_SLP(gpe0-6, INPUT, DOWN); + PIN_SLP(gpe0-7, INPUT, DOWN); + + PIN_SLP(gpe1-0, INPUT, DOWN); + PIN_SLP(gpe1-1, INPUT, DOWN); + PIN_SLP(gpe1-2, INPUT, DOWN); + PIN_SLP(gpe1-3, OUT0, NONE); + PIN_SLP(gpe1-4, INPUT, DOWN); + + PIN_SLP(gpf0-0, OUT0, NONE); + PIN_SLP(gpf0-1, OUT0, NONE); + PIN_SLP(gpf0-2, OUT0, NONE); + PIN_SLP(gpf0-3, OUT0, NONE); + PIN_SLP(gpf0-4, OUT0, NONE); + PIN_SLP(gpf0-5, OUT0, NONE); + PIN_SLP(gpf0-6, OUT0, NONE); + PIN_SLP(gpf0-7, OUT0, NONE); + + PIN_SLP(gpf1-0, OUT0, NONE); + PIN_SLP(gpf1-1, OUT0, NONE); + PIN_SLP(gpf1-2, OUT0, NONE); + PIN_SLP(gpf1-3, OUT0, NONE); + PIN_SLP(gpf1-4, OUT0, NONE); + PIN_SLP(gpf1-5, OUT0, NONE); + PIN_SLP(gpf1-6, OUT0, NONE); + PIN_SLP(gpf1-7, OUT0, NONE); + + PIN_SLP(gpf2-0, OUT0, NONE); + PIN_SLP(gpf2-1, OUT0, NONE); + PIN_SLP(gpf2-2, OUT0, NONE); + PIN_SLP(gpf2-3, OUT0, NONE); + PIN_SLP(gpf2-4, OUT0, NONE); + PIN_SLP(gpf2-5, OUT0, NONE); + PIN_SLP(gpf2-6, OUT0, NONE); + PIN_SLP(gpf2-7, OUT0, NONE); + + PIN_SLP(gpf3-0, OUT0, NONE); + PIN_SLP(gpf3-1, OUT0, NONE); + PIN_SLP(gpf3-2, OUT0, NONE); + PIN_SLP(gpf3-3, OUT0, NONE); + PIN_SLP(gpf3-4, PREV, NONE); + PIN_SLP(gpf3-5, INPUT, DOWN); + + PIN_SLP(gpg0-0, INPUT, DOWN); + PIN_SLP(gpg0-1, INPUT, DOWN); + PIN_SLP(gpg0-2, INPUT, NONE); + PIN_SLP(gpg0-3, INPUT, DOWN); + PIN_SLP(gpg0-4, INPUT, DOWN); + PIN_SLP(gpg0-5, INPUT, DOWN); + PIN_SLP(gpg0-6, INPUT, DOWN); + + PIN_SLP(gpg1-0, OUT0, NONE); + PIN_SLP(gpg1-1, OUT1, NONE); + PIN_SLP(gpg1-2, PREV, NONE); + PIN_SLP(gpg1-3, OUT1, NONE); + PIN_SLP(gpg1-4, OUT1, NONE); + PIN_SLP(gpg1-5, OUT1, NONE); + PIN_SLP(gpg1-6, OUT1, NONE); + + PIN_SLP(gpg2-0, OUT0, NONE); + PIN_SLP(gpg2-1, OUT0, NONE); + PIN_SLP(gpg2-2, INPUT, NONE); + PIN_SLP(gpg2-3, OUT0, NONE); + PIN_SLP(gpg2-4, OUT0, NONE); + PIN_SLP(gpg2-5, OUT0, NONE); + PIN_SLP(gpg2-6, OUT0, NONE); + + PIN_SLP(gpg3-0, PREV, UP); + PIN_SLP(gpg3-1, PREV, UP); + PIN_SLP(gpg3-2, INPUT, NONE); + PIN_SLP(gpg3-3, INPUT, DOWN); + PIN_SLP(gpg3-4, OUT0, NONE); + PIN_SLP(gpg3-5, OUT0, NONE); + PIN_SLP(gpg3-6, INPUT, DOWN); + + PIN_SLP(gpi-0, PREV, NONE); + PIN_SLP(gpi-1, INPUT, DOWN); + PIN_SLP(gpi-2, PREV, NONE); + PIN_SLP(gpi-3, PREV, NONE); + PIN_SLP(gpi-4, PREV, NONE); + PIN_SLP(gpi-5, INPUT, DOWN); + PIN_SLP(gpi-6, INPUT, DOWN); + + PIN_SLP(gpj0-0, INPUT, NONE); + PIN_SLP(gpj0-1, INPUT, NONE); + PIN_SLP(gpj0-2, INPUT, NONE); + PIN_SLP(gpj0-3, INPUT, NONE); + PIN_SLP(gpj0-4, INPUT, NONE); + PIN_SLP(gpj0-5, INPUT, DOWN); + PIN_SLP(gpj0-6, OUT0, NONE); + PIN_SLP(gpj0-7, INPUT, NONE); + + PIN_SLP(gpj1-0, OUT1, NONE); + PIN_SLP(gpj1-1, OUT0, NONE); + PIN_SLP(gpj1-2, INPUT, DOWN); + PIN_SLP(gpj1-3, PREV, NONE); + PIN_SLP(gpj1-4, PREV, NONE); + PIN_SLP(gpj1-5, OUT0, NONE); + + PIN_SLP(gpj2-0, INPUT, DOWN); + PIN_SLP(gpj2-1, INPUT, DOWN); + PIN_SLP(gpj2-2, OUT0, NONE); + PIN_SLP(gpj2-3, INPUT, DOWN); + PIN_SLP(gpj2-4, INPUT, DOWN); + PIN_SLP(gpj2-5, PREV, NONE); + PIN_SLP(gpj2-6, PREV, NONE); + PIN_SLP(gpj2-7, INPUT, DOWN); + + PIN_SLP(gpj3-0, INPUT, NONE); + PIN_SLP(gpj3-1, INPUT, NONE); + PIN_SLP(gpj3-2, OUT0, NONE); + PIN_SLP(gpj3-3, INPUT, DOWN); + PIN_SLP(gpj3-4, INPUT, NONE); + PIN_SLP(gpj3-5, INPUT, NONE); + PIN_SLP(gpj3-6, INPUT, NONE); + PIN_SLP(gpj3-7, INPUT, NONE); + + PIN_SLP(gpj4-0, INPUT, NONE); + PIN_SLP(gpj4-1, INPUT, DOWN); + PIN_SLP(gpj4-2, PREV, NONE); + PIN_SLP(gpj4-3, INPUT, NONE); + PIN_SLP(gpj4-4, INPUT, DOWN); + + PIN_SLP(mp01-0, OUT1, NONE); + PIN_SLP(mp01-1, OUT0, NONE); + PIN_SLP(mp01-2, INPUT, DOWN); + PIN_SLP(mp01-3, INPUT, DOWN); + PIN_SLP(mp01-4, OUT1, NONE); + PIN_SLP(mp01-5, INPUT, DOWN); + PIN_SLP(mp01-6, INPUT, DOWN); + PIN_SLP(mp01-7, INPUT, DOWN); + + PIN_SLP(mp02-0, INPUT, DOWN); + PIN_SLP(mp02-1, INPUT, DOWN); + PIN_SLP(mp02-2, INPUT, NONE); + PIN_SLP(mp02-3, INPUT, DOWN); + + PIN_SLP(mp03-0, INPUT, DOWN); + PIN_SLP(mp03-1, INPUT, DOWN); + PIN_SLP(mp03-2, OUT1, NONE); + PIN_SLP(mp03-3, OUT0, NONE); + PIN_SLP(mp03-4, INPUT, NONE); + PIN_SLP(mp03-5, OUT0, NONE); + PIN_SLP(mp03-6, INPUT, DOWN); + PIN_SLP(mp03-7, INPUT, DOWN); + + PIN_SLP(mp04-0, INPUT, DOWN); + PIN_SLP(mp04-1, OUT0, NONE); + PIN_SLP(mp04-2, INPUT, DOWN); + PIN_SLP(mp04-3, OUT0, NONE); + PIN_SLP(mp04-4, INPUT, DOWN); + PIN_SLP(mp04-5, INPUT, DOWN); + PIN_SLP(mp04-6, OUT0, NONE); + PIN_SLP(mp04-7, INPUT, DOWN); + + PIN_SLP(mp05-0, INPUT, NONE); + PIN_SLP(mp05-1, INPUT, NONE); + PIN_SLP(mp05-2, INPUT, NONE); + PIN_SLP(mp05-3, INPUT, NONE); + PIN_SLP(mp05-4, INPUT, DOWN); + PIN_SLP(mp05-5, OUT0, NONE); + PIN_SLP(mp05-6, INPUT, DOWN); + PIN_SLP(mp05-7, PREV, NONE); + + PIN_SLP(mp06-0, INPUT, DOWN); + PIN_SLP(mp06-1, INPUT, DOWN); + PIN_SLP(mp06-2, INPUT, DOWN); + PIN_SLP(mp06-3, INPUT, DOWN); + PIN_SLP(mp06-4, INPUT, DOWN); + PIN_SLP(mp06-5, INPUT, DOWN); + PIN_SLP(mp06-6, INPUT, DOWN); + PIN_SLP(mp06-7, INPUT, DOWN); + + PIN_SLP(mp07-0, INPUT, DOWN); + PIN_SLP(mp07-1, INPUT, DOWN); + PIN_SLP(mp07-2, INPUT, DOWN); + PIN_SLP(mp07-3, INPUT, DOWN); + PIN_SLP(mp07-4, INPUT, DOWN); + PIN_SLP(mp07-5, INPUT, DOWN); + PIN_SLP(mp07-6, INPUT, DOWN); + PIN_SLP(mp07-7, INPUT, DOWN); + }; +}; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 03/18] ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> 2020-05-01 23:50 ` [PATCH v2 01/18] ARM: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 02/18] ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 04/18] ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries Jonathan Bakker ` (14 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker In order to minimize leakage current during sleep, set a config for sleep GPIOs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- Changes from v1 - Note where sleep GPIOs came from --- arch/arm/boot/dts/s5pv210-galaxys.dts | 241 ++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index cf161bbfbacf..9bf4a5b95b74 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -52,12 +52,253 @@ }; &pinctrl0 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep_cfg>; + massmemory_en: massmemory-en { samsung,pins = "gpj2-7"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + /* Based on CyanogenMod 3.0.101 kernel */ + sleep_cfg: sleep-cfg { + PIN_SLP(gpa0-0, PREV, NONE); + PIN_SLP(gpa0-1, PREV, NONE); + PIN_SLP(gpa0-2, PREV, NONE); + PIN_SLP(gpa0-3, OUT1, NONE); + PIN_SLP(gpa0-4, INPUT, DOWN); + PIN_SLP(gpa0-5, OUT0, NONE); + PIN_SLP(gpa0-6, INPUT, DOWN); + PIN_SLP(gpa0-7, OUT1, NONE); + + PIN_SLP(gpa1-0, INPUT, DOWN); + PIN_SLP(gpa1-1, OUT0, NONE); + PIN_SLP(gpa1-2, INPUT, NONE); + PIN_SLP(gpa1-3, OUT0, NONE); + + PIN_SLP(gpb-0, OUT0, NONE); + PIN_SLP(gpb-1, OUT1, NONE); + PIN_SLP(gpb-2, OUT0, NONE); + PIN_SLP(gpb-3, PREV, NONE); + PIN_SLP(gpb-4, INPUT, NONE); + PIN_SLP(gpb-5, PREV, NONE); + PIN_SLP(gpb-6, INPUT, DOWN); + PIN_SLP(gpb-7, OUT0, NONE); + + PIN_SLP(gpc0-0, OUT0, NONE); + PIN_SLP(gpc0-1, INPUT, DOWN); + PIN_SLP(gpc0-2, OUT0, NONE); + PIN_SLP(gpc0-3, INPUT, NONE); + PIN_SLP(gpc0-4, OUT0, NONE); + + PIN_SLP(gpc1-0, INPUT, DOWN); + PIN_SLP(gpc1-1, INPUT, DOWN); + PIN_SLP(gpc1-2, INPUT, DOWN); + PIN_SLP(gpc1-3, INPUT, DOWN); + PIN_SLP(gpc1-4, INPUT, DOWN); + + PIN_SLP(gpd0-0, INPUT, DOWN); + PIN_SLP(gpd0-1, OUT0, NONE); + PIN_SLP(gpd0-2, INPUT, DOWN); + PIN_SLP(gpd0-3, INPUT, DOWN); + + PIN_SLP(gpd1-0, INPUT, NONE); + PIN_SLP(gpd1-1, INPUT, NONE); + PIN_SLP(gpd1-2, INPUT, NONE); + PIN_SLP(gpd1-3, INPUT, NONE); + PIN_SLP(gpd1-4, INPUT, DOWN); + PIN_SLP(gpd1-5, INPUT, DOWN); + + PIN_SLP(gpe0-0, INPUT, DOWN); + PIN_SLP(gpe0-1, INPUT, DOWN); + PIN_SLP(gpe0-2, INPUT, DOWN); + PIN_SLP(gpe0-3, INPUT, DOWN); + PIN_SLP(gpe0-4, INPUT, DOWN); + PIN_SLP(gpe0-5, INPUT, DOWN); + PIN_SLP(gpe0-6, INPUT, DOWN); + PIN_SLP(gpe0-7, INPUT, DOWN); + + PIN_SLP(gpe1-0, INPUT, DOWN); + PIN_SLP(gpe1-1, INPUT, DOWN); + PIN_SLP(gpe1-2, INPUT, DOWN); + PIN_SLP(gpe1-3, OUT0, NONE); + PIN_SLP(gpe1-4, INPUT, DOWN); + + PIN_SLP(gpf0-0, OUT0, NONE); + PIN_SLP(gpf0-1, OUT0, NONE); + PIN_SLP(gpf0-2, OUT0, NONE); + PIN_SLP(gpf0-3, OUT0, NONE); + PIN_SLP(gpf0-4, OUT0, NONE); + PIN_SLP(gpf0-5, OUT0, NONE); + PIN_SLP(gpf0-6, OUT0, NONE); + PIN_SLP(gpf0-7, OUT0, NONE); + + PIN_SLP(gpf1-0, OUT0, NONE); + PIN_SLP(gpf1-1, OUT0, NONE); + PIN_SLP(gpf1-2, OUT0, NONE); + PIN_SLP(gpf1-3, OUT0, NONE); + PIN_SLP(gpf1-4, OUT0, NONE); + PIN_SLP(gpf1-5, OUT0, NONE); + PIN_SLP(gpf1-6, OUT0, NONE); + PIN_SLP(gpf1-7, OUT0, NONE); + + PIN_SLP(gpf2-0, OUT0, NONE); + PIN_SLP(gpf2-1, OUT0, NONE); + PIN_SLP(gpf2-2, OUT0, NONE); + PIN_SLP(gpf2-3, OUT0, NONE); + PIN_SLP(gpf2-4, OUT0, NONE); + PIN_SLP(gpf2-5, OUT0, NONE); + PIN_SLP(gpf2-6, OUT0, NONE); + PIN_SLP(gpf2-7, OUT0, NONE); + + PIN_SLP(gpf3-0, OUT0, NONE); + PIN_SLP(gpf3-1, OUT0, NONE); + PIN_SLP(gpf3-2, OUT0, NONE); + PIN_SLP(gpf3-3, OUT0, NONE); + PIN_SLP(gpf3-4, PREV, NONE); + PIN_SLP(gpf3-5, INPUT, DOWN); + + PIN_SLP(gpg0-0, OUT0, NONE); + PIN_SLP(gpg0-1, INPUT, NONE); + PIN_SLP(gpg0-2, INPUT, NONE); + PIN_SLP(gpg0-3, INPUT, NONE); + PIN_SLP(gpg0-4, INPUT, NONE); + PIN_SLP(gpg0-5, INPUT, NONE); + PIN_SLP(gpg0-6, INPUT, NONE); + + PIN_SLP(gpg1-0, OUT0, NONE); + PIN_SLP(gpg1-1, OUT1, NONE); + PIN_SLP(gpg1-2, PREV, NONE); + PIN_SLP(gpg1-3, OUT1, NONE); + PIN_SLP(gpg1-4, OUT1, NONE); + PIN_SLP(gpg1-5, OUT1, NONE); + PIN_SLP(gpg1-6, OUT1, NONE); + + PIN_SLP(gpg2-0, OUT0, NONE); + PIN_SLP(gpg2-1, OUT0, NONE); + PIN_SLP(gpg2-2, INPUT, NONE); + PIN_SLP(gpg2-3, OUT0, NONE); + PIN_SLP(gpg2-4, OUT0, NONE); + PIN_SLP(gpg2-5, OUT0, NONE); + PIN_SLP(gpg2-6, OUT0, NONE); + + PIN_SLP(gpg3-0, OUT1, NONE); + PIN_SLP(gpg3-1, OUT0, NONE); + PIN_SLP(gpg3-2, INPUT, NONE); + PIN_SLP(gpg3-3, INPUT, DOWN); + PIN_SLP(gpg3-4, OUT0, NONE); + PIN_SLP(gpg3-5, OUT0, NONE); + PIN_SLP(gpg3-6, INPUT, DOWN); + + PIN_SLP(gpi-0, PREV, NONE); + PIN_SLP(gpi-1, INPUT, DOWN); + PIN_SLP(gpi-2, PREV, NONE); + PIN_SLP(gpi-3, PREV, NONE); + PIN_SLP(gpi-4, PREV, NONE); + PIN_SLP(gpi-5, INPUT, DOWN); + PIN_SLP(gpi-6, INPUT, DOWN); + + PIN_SLP(gpj0-0, INPUT, NONE); + PIN_SLP(gpj0-1, INPUT, NONE); + PIN_SLP(gpj0-2, INPUT, NONE); + PIN_SLP(gpj0-3, INPUT, NONE); + PIN_SLP(gpj0-4, INPUT, NONE); + PIN_SLP(gpj0-5, INPUT, DOWN); + PIN_SLP(gpj0-6, OUT0, NONE); + PIN_SLP(gpj0-7, INPUT, NONE); + + PIN_SLP(gpj1-0, INPUT, DOWN); + PIN_SLP(gpj1-1, OUT0, NONE); + PIN_SLP(gpj1-2, INPUT, DOWN); + PIN_SLP(gpj1-3, PREV, NONE); + PIN_SLP(gpj1-4, PREV, NONE); + PIN_SLP(gpj1-5, OUT0, NONE); + + PIN_SLP(gpj2-0, INPUT, DOWN); + PIN_SLP(gpj2-1, INPUT, DOWN); + PIN_SLP(gpj2-2, OUT0, NONE); + PIN_SLP(gpj2-3, INPUT, DOWN); + PIN_SLP(gpj2-4, INPUT, UP); + PIN_SLP(gpj2-5, PREV, NONE); + PIN_SLP(gpj2-6, PREV, NONE); + PIN_SLP(gpj2-7, OUT1, NONE); + + PIN_SLP(gpj3-0, INPUT, NONE); + PIN_SLP(gpj3-1, INPUT, NONE); + PIN_SLP(gpj3-2, OUT0, NONE); + PIN_SLP(gpj3-3, INPUT, DOWN); + PIN_SLP(gpj3-4, INPUT, NONE); + PIN_SLP(gpj3-5, INPUT, NONE); + PIN_SLP(gpj3-6, INPUT, NONE); + PIN_SLP(gpj3-7, INPUT, NONE); + + PIN_SLP(gpj4-0, INPUT, NONE); + PIN_SLP(gpj4-1, INPUT, DOWN); + PIN_SLP(gpj4-2, PREV, NONE); + PIN_SLP(gpj4-3, INPUT, NONE); + PIN_SLP(gpj4-4, INPUT, DOWN); + + PIN_SLP(mp01-0, INPUT, DOWN); + PIN_SLP(mp01-1, OUT0, NONE); + PIN_SLP(mp01-2, INPUT, DOWN); + PIN_SLP(mp01-3, INPUT, DOWN); + PIN_SLP(mp01-4, OUT1, NONE); + PIN_SLP(mp01-5, INPUT, DOWN); + PIN_SLP(mp01-6, INPUT, DOWN); + PIN_SLP(mp01-7, INPUT, DOWN); + + PIN_SLP(mp02-0, INPUT, DOWN); + PIN_SLP(mp02-1, INPUT, DOWN); + PIN_SLP(mp02-2, INPUT, NONE); + PIN_SLP(mp02-3, INPUT, DOWN); + + PIN_SLP(mp03-0, INPUT, DOWN); + PIN_SLP(mp03-1, INPUT, DOWN); + PIN_SLP(mp03-2, OUT1, NONE); + PIN_SLP(mp03-3, OUT0, NONE); + PIN_SLP(mp03-4, INPUT, NONE); + PIN_SLP(mp03-5, OUT1, NONE); + PIN_SLP(mp03-6, INPUT, DOWN); + PIN_SLP(mp03-7, INPUT, DOWN); + + PIN_SLP(mp04-0, INPUT, DOWN); + PIN_SLP(mp04-1, OUT0, NONE); + PIN_SLP(mp04-2, INPUT, DOWN); + PIN_SLP(mp04-3, OUT0, NONE); + PIN_SLP(mp04-4, INPUT, DOWN); + PIN_SLP(mp04-5, INPUT, DOWN); + PIN_SLP(mp04-6, OUT0, NONE); + PIN_SLP(mp04-7, INPUT, DOWN); + + PIN_SLP(mp05-0, INPUT, NONE); + PIN_SLP(mp05-1, INPUT, NONE); + PIN_SLP(mp05-2, INPUT, NONE); + PIN_SLP(mp05-3, INPUT, NONE); + PIN_SLP(mp05-4, INPUT, DOWN); + PIN_SLP(mp05-5, OUT0, NONE); + PIN_SLP(mp05-6, INPUT, DOWN); + PIN_SLP(mp05-7, PREV, NONE); + + PIN_SLP(mp06-0, INPUT, DOWN); + PIN_SLP(mp06-1, INPUT, DOWN); + PIN_SLP(mp06-2, INPUT, DOWN); + PIN_SLP(mp06-3, INPUT, DOWN); + PIN_SLP(mp06-4, INPUT, DOWN); + PIN_SLP(mp06-5, INPUT, DOWN); + PIN_SLP(mp06-6, INPUT, DOWN); + PIN_SLP(mp06-7, INPUT, DOWN); + + PIN_SLP(mp07-0, INPUT, DOWN); + PIN_SLP(mp07-1, INPUT, DOWN); + PIN_SLP(mp07-2, INPUT, DOWN); + PIN_SLP(mp07-3, INPUT, DOWN); + PIN_SLP(mp07-4, INPUT, DOWN); + PIN_SLP(mp07-5, INPUT, DOWN); + PIN_SLP(mp07-6, INPUT, DOWN); + PIN_SLP(mp07-7, INPUT, DOWN); + }; }; &sdhci0 { -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 04/18] ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (2 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 03/18] ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 05/18] ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries Jonathan Bakker ` (13 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker SDHCI1 is connected to a BCM4329 WiFi/BT chip which requires power to be kept over suspend. As the surrounding hardware supports this, mark it as such. This fixes wifi after a suspend/resume cycle. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 8ff70b856334..d419b77201f7 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -454,6 +454,7 @@ pinctrl-names = "default"; cap-sd-highspeed; cap-mmc-highspeed; + keep-power-in-suspend; mmc-pwrseq = <&wifi_pwrseq>; non-removable; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 05/18] ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (3 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 04/18] ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 06/18] ARM: dts: s5pv210: Add WM8994 support to aries boards Jonathan Bakker ` (12 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The bitbanged GPIO i2c adapters have external pull-ups attached so the internal pulls should be disabled for lower power usage. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index d419b77201f7..f83df426f2b6 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -65,6 +65,9 @@ #address-cells = <1>; #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_i2c_pins>; + pmic@66 { compatible = "maxim,max8998"; reg = <0x66>; @@ -314,6 +317,9 @@ #address-cells = <1>; #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&fg_i2c_pins>; + fuelgauge@36 { compatible = "maxim,max17040"; interrupt-parent = <&vic0>; @@ -438,6 +444,18 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + pmic_i2c_pins: pmic-i2c-pins { + samsung,pins = "gpj4-0", "gpj4-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fg_i2c_pins: fg-i2c-pins { + samsung,pins = "mp05-0", "mp05-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; }; &pwm { -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 06/18] ARM: dts: s5pv210: Add WM8994 support to aries boards [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (4 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 05/18] ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 07/18] ARM: dts: s5pv210: Add FSA9480 support to Aries boards Jonathan Bakker ` (11 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker Aries boards have a Wolfson WM8994 sound card attached over gpio-i2c. There is currently no ASoC Machine Driver. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 65 ++++++++++++++++++++++- arch/arm/boot/dts/s5pv210-fascinate4g.dts | 6 +++ 2 files changed, 69 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index f83df426f2b6..7d001c22c532 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -12,6 +12,7 @@ compatible = "samsung,aries", "samsung,s5pv210"; aliases { + i2c4 = &i2c_sound; i2c6 = &i2c_pmic; i2c9 = &i2c_fuel; }; @@ -57,7 +58,55 @@ power-off-delay-us = <500>; }; - i2c_pmic: i2c-gpio-0 { + i2c_sound: i2c-gpio-0 { + compatible = "i2c-gpio"; + sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&sound_i2c_pins>; + + wm8994: wm8994@1a { + compatible = "wlf,wm8994"; + reg = <0x1a>; + + #sound-dai-cells = <0>; + + gpio-controller; + #gpio-cells = <2>; + + clocks = <&clocks MOUT_CLKOUT>; + clock-names = "MCLK1"; + + AVDD2-supply = <&buck3_reg>; + DBVDD-supply = <&buck3_reg>; + CPVDD-supply = <&buck3_reg>; + SPKVDD1-supply = <&buck3_reg>; + SPKVDD2-supply = <&buck3_reg>; + + wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100 + 0xa101 0x0100 0x8100 0x0100 0x0100 + 0x0100>; + + wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; + wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>; + + wlf,lineout1-se; + wlf,lineout2-se; + + assigned-clocks = <&clocks MOUT_CLKOUT>; + assigned-clock-rates = <0>; + assigned-clock-parents = <&xusbxti>; + + pinctrl-names = "default"; + pinctrl-0 = <&codec_ldo>; + }; + }; + + i2c_pmic: i2c-gpio-2 { compatible = "i2c-gpio"; sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -309,7 +358,7 @@ }; }; - i2c_fuel: i2c-gpio-1 { + i2c_fuel: i2c-gpio-4 { compatible = "i2c-gpio"; sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -405,6 +454,12 @@ samsung,pin-val = <1>; }; + codec_ldo: codec-ldo { + samsung,pins = "gpf3-4"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + }; + wlan_gpio_rst: wlan-gpio-rst { samsung,pins = "gpg1-2"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; @@ -456,6 +511,12 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + sound_i2c_pins: sound-i2c-pins { + samsung,pins = "mp05-2", "mp05-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; }; &pwm { diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index 65f589e2b72a..5e1b81823a8d 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -279,3 +279,9 @@ PIN_SLP(mp07-7, INPUT, DOWN); }; }; + +&wm8994 { + /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */ + wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101 + 0x0100 0x8100 0x0100 0x0100 0x0100>; +}; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 07/18] ARM: dts: s5pv210: Add FSA9480 support to Aries boards [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (5 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 06/18] ARM: dts: s5pv210: Add WM8994 support to aries boards Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 08/18] ARM: dts: s5pv210: Add touchkey support to aries boards Jonathan Bakker ` (10 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The Fairchild FSA9480 is a USB mux connected over i2c-gpio. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 7d001c22c532..6233884713cb 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -14,6 +14,7 @@ aliases { i2c4 = &i2c_sound; i2c6 = &i2c_pmic; + i2c7 = &i2c_musb; i2c9 = &i2c_fuel; }; @@ -358,6 +359,28 @@ }; }; + i2c_musb: i2c-gpio-3 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&musb_i2c_pins>; + + fsa9480: musb@25 { + compatible = "fcs,fsa9480"; + reg = <0x25>; + interrupt-parent = <&gph2>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-names = "default"; + pinctrl-0 = <&musb_irq>; + }; + }; + i2c_fuel: i2c-gpio-4 { compatible = "i2c-gpio"; sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -480,6 +503,13 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + musb_irq: musq-irq { + samsung,pins = "gph2-7"; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + tf_detect: tf-detect { samsung,pins = "gph3-4"; samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; @@ -500,6 +530,12 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + musb_i2c_pins: musb-i2c-pins { + samsung,pins = "gpj3-4", "gpj3-5"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + pmic_i2c_pins: pmic-i2c-pins { samsung,pins = "gpj4-0", "gpj4-3"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 08/18] ARM: dts: s5pv210: Add touchkey support to aries boards [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (6 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 07/18] ARM: dts: s5pv210: Add FSA9480 support to Aries boards Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 09/18] ARM: dts: s5pv210: Add panel " Jonathan Bakker ` (9 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker Aries boards have soft touchkeys, manufactured by Cypress, attached over i2c-gpio. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 6233884713cb..6683ecec905a 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -16,6 +16,7 @@ i2c6 = &i2c_pmic; i2c7 = &i2c_musb; i2c9 = &i2c_fuel; + i2c10 = &i2c_touchkey; }; memory@30000000 { @@ -50,6 +51,18 @@ gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; }; + touchkey_vdd: regulator-fixed-1 { + compatible = "regulator-fixed"; + regulator-name = "VTOUCH_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_vdd_ena>; + }; + wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; @@ -400,6 +413,32 @@ }; }; + i2c_touchkey: i2c-gpio-5 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_i2c_pins>; + + touchkey@20 { + compatible = "cypress,aries-touchkey"; + reg = <0x20>; + vdd-supply = <&touchkey_vdd>; + vcc-supply = <&buck3_reg>; + linux,keycodes = <KEY_MENU KEY_BACK + KEY_HOMEPAGE KEY_SEARCH>; + interrupt-parent = <&gpj4>; + interrupts = <1 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchkey_irq>; + }; + }; + vibrator: pwm-vibrator { compatible = "pwm-vibrator"; pwms = <&pwm 1 44642 0>; @@ -530,6 +569,18 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + touchkey_i2c_pins: touchkey-i2c-pins { + samsung,pins = "gpj3-0", "gpj3-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + touchkey_vdd_ena: touchkey-vdd-ena { + samsung,pins = "gpj3-2"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + musb_i2c_pins: musb-i2c-pins { samsung,pins = "gpj3-4", "gpj3-5"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; @@ -542,6 +593,13 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + touchkey_irq: touchkey-irq { + samsung,pins = "gpj4-1"; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + fg_i2c_pins: fg-i2c-pins { samsung,pins = "mp05-0", "mp05-1"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 09/18] ARM: dts: s5pv210: Add panel support to aries boards [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (7 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 08/18] ARM: dts: s5pv210: Add touchkey support to aries boards Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 10/18] ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries Jonathan Bakker ` (8 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker Aries boards have an s6e63m0 AMOLED panel connected over i2c-spi. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 68 +++++++++++++++++++++------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 6683ecec905a..046366d58aa0 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -200,8 +200,6 @@ regulator-name = "VLCD_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - /* Till we get panel driver */ - regulator-always-on; regulator-state-mem { regulator-off-in-suspend; @@ -300,8 +298,6 @@ regulator-name = "VCC_3.0V_LCD"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; - /* Till we get panel driver */ - regulator-always-on; regulator-state-mem { regulator-off-in-suspend; @@ -454,6 +450,39 @@ offset = <0x681c>; /* PS_HOLD_CONTROL */ value = <0x5200>; }; + + spi_lcd: spi-gpio-0 { + compatible = "spi-gpio"; + #address-cells = <1>; + #size-cells = <0>; + + sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>; + mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>; + cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>; + num-chipselects = <1>; + + pinctrl-names = "default"; + pinctrl-0 = <&lcd_spi_pins>; + + panel@0 { + compatible = "samsung,s6e63m0"; + reg = <0>; + reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>; + vdd3-supply = <&ldo7_reg>; + vci-supply = <&ldo17_reg>; + spi-cs-high; + spi-max-frequency = <1200000>; + + pinctrl-names = "default"; + pinctrl-0 = <&panel_rst>; + + port { + lcd_ep: endpoint { + remote-endpoint = <&fimd_ep>; + }; + }; + }; + }; }; &fimd { @@ -464,18 +493,13 @@ samsung,invert-vden; samsung,invert-vclk; - display-timings { - timing-0 { - /* 480x800@60Hz */ - clock-frequency = <25628040>; - hactive = <480>; - vactive = <800>; - hfront-porch = <16>; - hback-porch = <16>; - hsync-len = <2>; - vfront-porch = <28>; - vback-porch = <1>; - vsync-len = <2>; + #address-cells = <1>; + #size-cells = <0>; + + port@3 { + reg = <3>; + fimd_ep: endpoint { + remote-endpoint = <&lcd_ep>; }; }; }; @@ -600,6 +624,12 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + lcd_spi_pins: spi-lcd-pins { + samsung,pins = "mp01-1", "mp04-1", "mp04-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + fg_i2c_pins: fg-i2c-pins { samsung,pins = "mp05-0", "mp05-1"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; @@ -611,6 +641,12 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + panel_rst: panel-rst { + samsung,pins = "mp05-5"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; }; &pwm { -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 10/18] ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (8 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 09/18] ARM: dts: s5pv210: Add panel " Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 11/18] ARM: dts: s5pv210: Add si470x fmradio to galaxys Jonathan Bakker ` (7 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The remaining i2c-gpio adapters that are common to all aries boards have devices without mainline bindings attachted to them. Add them here for documentation. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 046366d58aa0..a3748705dce8 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -13,10 +13,13 @@ aliases { i2c4 = &i2c_sound; + i2c5 = &i2c_accel; i2c6 = &i2c_pmic; i2c7 = &i2c_musb; i2c9 = &i2c_fuel; i2c10 = &i2c_touchkey; + i2c11 = &i2c_prox; + i2c12 = &i2c_magnetometer; }; memory@30000000 { @@ -120,6 +123,22 @@ }; }; + i2c_accel: i2c-gpio-1 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&accel_i2c_pins>; + + status = "disabled"; + + /* bma023 accelerometer, no mainline binding */ + }; + i2c_pmic: i2c-gpio-2 { compatible = "i2c-gpio"; sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; @@ -435,6 +454,38 @@ }; }; + i2c_prox: i2c-gpio-6 { + compatible = "i2c-gpio"; + sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&prox_i2c_pins>; + + status = "disabled"; + + /* Sharp gp2a prox/light sensor, incomplete mainline binding */ + }; + + i2c_magnetometer: i2c-gpio-7 { + compatible = "i2c-gpio"; + sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&magnetometer_i2c_pins>; + + status = "disabled"; + + /* Yamaha yas529 magnetometer, no mainline binding */ + }; + vibrator: pwm-vibrator { compatible = "pwm-vibrator"; pwms = <&pwm 1 44642 0>; @@ -546,6 +597,12 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; }; + prox_i2c_pins: gp2a-i2c-pins { + samsung,pins = "gpg0-2", "gpg2-2"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + wlan_gpio_rst: wlan-gpio-rst { samsung,pins = "gpg1-2"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; @@ -586,6 +643,12 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; }; + magnetometer_i2c_pins: yas529-i2c-pins { + samsung,pins = "gpj0-0", "gpj0-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + ts_irq: ts-irq { samsung,pins = "gpj0-5"; samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; @@ -611,6 +674,12 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + accel_i2c_pins: accel-i2c-pins { + samsung,pins = "gpj3-6", "gpj3-7"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + pmic_i2c_pins: pmic-i2c-pins { samsung,pins = "gpj4-0", "gpj4-3"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 11/18] ARM: dts: s5pv210: Add si470x fmradio to galaxys [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (9 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 10/18] ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 12/18] ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries Jonathan Bakker ` (6 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Paweł Chmiel, Jonathan Bakker From: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> Add support for the Silicon Labs si4709 fmradio, which can be found on Galaxy S GT-i9000 (but not most other aries variants). Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 2 +- arch/arm/boot/dts/s5pv210-galaxys.dts | 47 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index a3748705dce8..0fa3de3c985d 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -11,7 +11,7 @@ / { compatible = "samsung,aries", "samsung,s5pv210"; - aliases { + aliases: aliases { i2c4 = &i2c_sound; i2c5 = &i2c_accel; i2c6 = &i2c_pmic; diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index 9bf4a5b95b74..a99fdda25262 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -49,12 +49,59 @@ wakeup-source; }; }; + + i2c_fmradio: i2c-gpio-8 { + compatible = "i2c-gpio"; + sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&fm_i2c_pins>; + + fmradio@10 { + compatible = "silabs,si470x"; + reg = <0x10>; + interrupt-parent = <&gpj2>; + interrupts = <4 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&fm_irq &fm_rst>; + }; + }; +}; + +&aliases { + i2c8 = &i2c_fmradio; }; &pinctrl0 { pinctrl-names = "default"; pinctrl-0 = <&sleep_cfg>; + fm_i2c_pins: fm-i2c-pins { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fm_irq: fm-irq { + samsung,pins = "gpj2-4"; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + fm_rst: fm-rst { + samsung,pins = "gpj2-5"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + massmemory_en: massmemory-en { samsung,pins = "gpj2-7"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 12/18] ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (10 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 11/18] ARM: dts: s5pv210: Add si470x fmradio to galaxys Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 13/18] ARM: dts: s5pv210: Add an ADC node Jonathan Bakker ` (5 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The enable GPIO for the fixed vibrator regulator shouldn't be pulled in one direction or the other. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 0fa3de3c985d..945259aa5d55 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -52,6 +52,9 @@ regulator-name = "vibrator-en"; enable-active-high; gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctr-0 = <&vibrator_ena>; }; touchkey_vdd: regulator-fixed-1 { @@ -656,6 +659,12 @@ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + vibrator_ena: vibrator-ena { + samsung,pins = "gpj1-1"; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + touchkey_i2c_pins: touchkey-i2c-pins { samsung,pins = "gpj3-0", "gpj3-1"; samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 13/18] ARM: dts: s5pv210: Add an ADC node [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (11 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 12/18] ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 14/18] ARM: dts: s5pv210: Enable ADC on aries boards Jonathan Bakker ` (4 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The exynos-adc driver now supports the S5PV210, so add the DT node so that devices can use it. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- Changes from v1 - Adjust node name to match reg address --- arch/arm/boot/dts/s5pv210.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi index 2ad642f51fd9..30a0c39a310f 100644 --- a/arch/arm/boot/dts/s5pv210.dtsi +++ b/arch/arm/boot/dts/s5pv210.dtsi @@ -159,6 +159,18 @@ }; }; + adc: adc@e1700000 { + compatible = "samsung,s5pv210-adc"; + reg = <0xe1700000 0x1000>; + interrupt-parent = <&vic2>; + interrupts = <23>, <24>; + clocks = <&clocks CLK_TSADC>; + clock-names = "adc"; + #io-channel-cells = <1>; + io-channel-ranges; + status = "disabled"; + }; + spi0: spi@e1300000 { compatible = "samsung,s5pv210-spi"; reg = <0xe1300000 0x1000>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 14/18] ARM: dts: s5pv210: Enable ADC on aries boards [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (12 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 13/18] ARM: dts: s5pv210: Add an ADC node Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 15/18] ARM: dts: s5pv210: Assign clocks to MMC devices on aries Jonathan Bakker ` (3 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker On aries boards, the ADC is used for things such as jack detection and battery temperature monitoring. It is connected to ldo4 of max8998, so only enable that regulator when we are actually using the ADC. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- Changes from v1 - Replace removed regulator-off-in-suspend --- arch/arm/boot/dts/s5pv210-aries.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 945259aa5d55..9f4694d71203 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -195,7 +195,6 @@ regulator-name = "VADC_3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-always-on; regulator-state-mem { regulator-off-in-suspend; @@ -539,6 +538,12 @@ }; }; +&adc { + vdd-supply = <&ldo4_reg>; + + status = "okay"; +}; + &fimd { pinctrl-names = "default"; pinctrl-0 = <&lcd_clk &lcd_data24>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 15/18] ARM: dts: s5pv210: Assign clocks to MMC devices on aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (13 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 14/18] ARM: dts: s5pv210: Enable ADC on aries boards Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 16/18] ARM: dts: s5pv210: Correct FIMC definitions Jonathan Bakker ` (2 subsequent siblings) 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The SHDCI controller on aries devices is a little bit peculiar about the clocks and with a slightly off clock can run into errors such as [ 141.533993] mmc2: ADMA error: 0x02000000 [ 141.535137] mmc2: sdhci: ============ SDHCI REGISTER DUMP =========== [ 141.540246] mmc2: sdhci: Sys addr: 0x347e4cc4 | Version: 0x00002401 [ 141.545358] mmc2: sdhci: Blk size: 0x00007004 | Blk cnt: 0x0000fffc [ 141.550470] mmc2: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013 [ 141.555583] mmc2: sdhci: Present: 0x01fa0000 | Host ctl: 0x00000012 [ 141.560696] mmc2: sdhci: Power: 0x00000000 | Blk gap: 0x00000000 [ 141.565809] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x0000010f [ 141.570921] mmc2: sdhci: Timeout: 0x0000000a | Int stat: 0x00000003 [ 141.576034] mmc2: sdhci: Int enab: 0x03ff004b | Sig enab: 0x03ff004b [ 141.581147] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001 [ 141.586259] mmc2: sdhci: Caps: 0x05e80080 | Caps_1: 0x00000000 [ 141.591372] mmc2: sdhci: Cmd: 0x0000163a | Max curr: 0x00000000 [ 141.596485] mmc2: sdhci: Resp[0]: 0x00000920 | Resp[1]: 0x00000000 [ 141.601597] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000 [ 141.606710] mmc2: sdhci: Host ctl2: 0x00000000 [ 141.609831] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x349a3208 [ 141.614942] mmc2: sdhci: ============================================ [ 141.620057] mmc2: sdhci: 349a3200: DMA 0x347e4cc0, LEN 0x0004, Attr=0x23 Specifically assign the mmc sclks to be parented from MPLL with specific rates that match the vendor kernel. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 8 ++++++++ arch/arm/boot/dts/s5pv210-galaxys.dts | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 9f4694d71203..0bd65401ec65 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -752,6 +752,10 @@ non-removable; status = "okay"; + assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>; + assigned-clock-rates = <0>, <50000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; + wlan@1 { reg = <1>; compatible = "brcm,bcm4329-fmac"; @@ -768,6 +772,10 @@ pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>; pinctrl-names = "default"; status = "okay"; + + assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>; + assigned-clock-rates = <0>, <50000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; }; &uart0 { diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index a99fdda25262..5d10dd67eacc 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts @@ -355,4 +355,8 @@ pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; pinctrl-names = "default"; status = "okay"; + + assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>; + assigned-clock-rates = <0>, <52000000>; + assigned-clock-parents = <&clocks MOUT_MPLL>; }; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 16/18] ARM: dts: s5pv210: Correct FIMC definitions [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (14 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 15/18] ARM: dts: s5pv210: Assign clocks to MMC devices on aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 17/18] ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 18/18] ARM: dts: s5pv210: Correct gpi gpio node name Jonathan Bakker 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The extended mainscaler is only available on FIMC1 and there are minimum pixel alignments that differ from the default. Additionally, the cam-if interface is available on all three while FIMC2 has no rotators. The lcd-wb interface is supported on FIMC1. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- Changes from v1 - Replace moved line to where it originally was --- arch/arm/boot/dts/s5pv210.dtsi | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi index 30a0c39a310f..1b0ee884e91d 100644 --- a/arch/arm/boot/dts/s5pv210.dtsi +++ b/arch/arm/boot/dts/s5pv210.dtsi @@ -626,7 +626,7 @@ clock-names = "fimc", "sclk_fimc"; samsung,pix-limits = <4224 8192 1920 4224>; - samsung,mainscaler-ext; + samsung,min-pix-alignment = <16 8>; samsung,cam-if; }; @@ -640,8 +640,10 @@ clock-names = "fimc", "sclk_fimc"; samsung,pix-limits = <4224 8192 1920 4224>; + samsung,min-pix-alignment = <1 1>; samsung,mainscaler-ext; samsung,cam-if; + samsung,lcd-wb; }; fimc2: fimc@fb400000 { @@ -653,9 +655,10 @@ <&clocks SCLK_FIMC2>; clock-names = "fimc", "sclk_fimc"; - samsung,pix-limits = <4224 8192 1920 4224>; - samsung,mainscaler-ext; - samsung,lcd-wb; + samsung,pix-limits = <1920 8192 1280 1920>; + samsung,min-pix-alignment = <16 8>; + samsung,rotators = <0>; + samsung,cam-if; }; }; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 17/18] ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (15 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 16/18] ARM: dts: s5pv210: Correct FIMC definitions Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 18/18] ARM: dts: s5pv210: Correct gpi gpio node name Jonathan Bakker 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker Make sure that the GPIOs are configured correctly for the interrupt (otherwise it won't fire) and disable the pulls on the DVS GPIOs which are outputs. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-aries.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 0bd65401ec65..cf858029292e 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi @@ -169,6 +169,9 @@ max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>; max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_dvs_pins &pmic_irq>; + regulators { ldo2_reg: LDO2 { regulator-name = "VALIVE_1.2V"; @@ -617,6 +620,21 @@ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; }; + pmic_dvs_pins: pmic-dvs-pins { + samsung,pins = "gph0-3", "gph0-4", "gph0-5"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + samsung,pin-val = <0>; + }; + + pmic_irq: pmic-irq { + samsung,pins = "gph0-7"; + samsung,pin-function = <EXYNOS_PIN_FUNC_F>; + samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + wifi_host_wake: wifi-host-wake { samsung,pins = "gph2-4"; samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [PATCH v2 18/18] ARM: dts: s5pv210: Correct gpi gpio node name [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> ` (16 preceding siblings ...) 2020-05-01 23:50 ` [PATCH v2 17/18] ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries Jonathan Bakker @ 2020-05-01 23:50 ` Jonathan Bakker 17 siblings, 0 replies; 46+ messages in thread From: Jonathan Bakker @ 2020-05-01 23:50 UTC (permalink / raw) To: kgene, krzk, robh+dt, linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel Cc: Jonathan Bakker The node name was gpgi, but the pinctrl driver was registering the pins as just gpi and the "samsung,pins" i2s0 pinctrl entries refer to gpi. The public s5pc110 datasheet also refers to these pins as just gpi, so let's make sure everything is in sync and rename the node to gpi. Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> --- arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi index 609f323d0805..5e8b66281f01 100644 --- a/arch/arm/boot/dts/s5pv210-pinctrl.dtsi +++ b/arch/arm/boot/dts/s5pv210-pinctrl.dtsi @@ -202,7 +202,7 @@ #interrupt-cells = <2>; }; - gpgi: gpgi { + gpi: gpi { gpio-controller; #gpio-cells = <2>; }; -- 2.20.1 ^ permalink raw reply related [flat|nested] 46+ messages in thread
end of thread, other threads:[~2020-05-04 15:15 UTC | newest] Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20200426183604.28494-1-xc-racer2@live.ca> 2020-04-26 18:35 ` [PATCH 01/13] arm: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker 2020-04-26 18:35 ` [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration Jonathan Bakker 2020-04-28 10:02 ` Krzysztof Kozlowski 2020-04-28 23:49 ` Jonathan Bakker 2020-05-01 13:10 ` Krzysztof Kozlowski 2020-04-26 18:35 ` [PATCH 03/13] arm: dts: s5pv210: galaxys: " Jonathan Bakker 2020-04-26 18:35 ` [PATCH 04/13] arm: dts: s5pv210: aries: Set keep-power-in-suspend for SDHCI1 Jonathan Bakker 2020-04-26 18:35 ` [PATCH 05/13] arm: dts: s5pv210: aries: Disable pulls on GPIO i2c adapters Jonathan Bakker 2020-04-26 18:35 ` [PATCH 06/13] arm: dts: s5pv210: aries: Add support for more devices Jonathan Bakker 2020-04-28 10:20 ` Krzysztof Kozlowski 2020-04-28 23:32 ` Jonathan Bakker 2020-05-01 13:31 ` Krzysztof Kozlowski 2020-05-01 19:43 ` Jonathan Bakker 2020-04-26 18:35 ` [PATCH 07/13] arm: dts: s5pv210: galaxys: Add si470x fmradio Jonathan Bakker 2020-04-26 18:35 ` [PATCH 08/13] arm: dts: s5pv210: aries: Disable pull for vibrator ena GPIO Jonathan Bakker 2020-04-26 18:36 ` [PATCH 09/13] arm: dts: s5pv210: Add an ADC node Jonathan Bakker 2020-04-28 10:26 ` Krzysztof Kozlowski 2020-04-28 22:27 ` Jonathan Bakker 2020-04-26 18:36 ` [PATCH 10/13] arm: dts: s5pv210: aries: Enable " Jonathan Bakker 2020-04-28 10:29 ` Krzysztof Kozlowski 2020-04-28 22:26 ` Jonathan Bakker 2020-04-26 18:36 ` [PATCH 11/13] arm: dts: s5pv210: Assign clocks to MMC devices Jonathan Bakker 2020-04-26 18:36 ` [PATCH 12/13] arm: dts: s5pv210: Correct FIMC definitions Jonathan Bakker 2020-04-28 10:32 ` Krzysztof Kozlowski 2020-04-28 22:31 ` Jonathan Bakker 2020-04-26 18:36 ` [PATCH 13/13] arm: dts: s5pv210: aries: Set MAX8998 GPIO pulls Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 00/18] S5PV210 and Aries DTS improvements Jonathan Bakker 2020-05-04 15:15 ` Krzysztof Kozlowski [not found] ` <20200501235019.24022-1-xc-racer2@live.ca> 2020-05-01 23:50 ` [PATCH v2 01/18] ARM: dts: s5pv210: Add helper define for sleep gpio config Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 02/18] ARM: dts: s5pv210: Add sleep GPIO configuration for fascinate4g Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 03/18] ARM: dts: s5pv210: Add sleep GPIO configuration for galaxys Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 04/18] ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 05/18] ARM: dts: s5pv210: Disable pulls on GPIO i2c adapters for aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 06/18] ARM: dts: s5pv210: Add WM8994 support to aries boards Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 07/18] ARM: dts: s5pv210: Add FSA9480 support to Aries boards Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 08/18] ARM: dts: s5pv210: Add touchkey support to aries boards Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 09/18] ARM: dts: s5pv210: Add panel " Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 10/18] ARM: dts: s5pv210: Add remaining i2c-gpio adapters to aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 11/18] ARM: dts: s5pv210: Add si470x fmradio to galaxys Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 12/18] ARM: dts: s5pv210: Disable pull for vibrator ena GPIO on aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 13/18] ARM: dts: s5pv210: Add an ADC node Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 14/18] ARM: dts: s5pv210: Enable ADC on aries boards Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 15/18] ARM: dts: s5pv210: Assign clocks to MMC devices on aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 16/18] ARM: dts: s5pv210: Correct FIMC definitions Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 17/18] ARM: dts: s5pv210: Set MAX8998 GPIO pulls on aries Jonathan Bakker 2020-05-01 23:50 ` [PATCH v2 18/18] ARM: dts: s5pv210: Correct gpi gpio node name Jonathan Bakker
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).