Message ID | 1403556576-8038-1-git-send-email-dianders@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/24/2014 02:19 AM, Doug Anderson wrote: > This adds cros_ec to exynos5420-peach-pit and exynos5800-peach-pi, > including: > * The keyboard > * The i2c tunnel > * The tps65090 under the i2c tunnel > * The battery under the i2c tunnel > > To add extra motivation, it should be noted that tps65090 is one of > the things needed to get display-related FETs turned on for pit and > pi. > > Note that this relies on a few outstanding changes: > * Needs (spi: s3c64xx: fix broken "cs_gpios" usage in the driver) and > (spi: s3c64xx: for DT platofrms always get the chipselect info from > DT node) to work properly and match the documented bindings. See > <https://patchwork.kernel.org/patch/4346701/> and > <https://patchwork.kernel.org/patch/4346711/> > > Signed-off-by: Doug Anderson <dianders@chromium.org> > Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Along with the dependency patches on next-20140623, tested keyboard on Peach-Pi board. Tested-by: Tushar Behera <tushar.b@samsung.com> Some comments below. > --- > Changes in v2: > - Now just one patch since mfd patch landed. > - Rebased to ToT linux-next > > arch/arm/boot/dts/exynos5420-peach-pit.dts | 145 +++++++++++++++++++++++++++++ > arch/arm/boot/dts/exynos5800-peach-pi.dts | 145 +++++++++++++++++++++++++++++ > 2 files changed, 290 insertions(+) > > diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts > index 7649982..581f385 100644 > --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts > +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts > + regulators { > + dcdc1 { > + ti,enable-ext-control; > + }; > + dcdc2 { > + ti,enable-ext-control; > + }; > + dcdc3 { > + ti,enable-ext-control; > + }; > + fet1 { "tps65090_fet1: fet1 {" ? > + regulator-name = "vcd_led"; > + }; > + tps65090_fet2: fet2 { I would suggest we add similar labels to fet1, fet3, fet4, fet5 and fet6 also. That way it would be easy to reference them in subsequent DT nodes. Same comment for Peach-Pi dts file too.
Tushar, On Mon, Jun 23, 2014 at 11:43 PM, Tushar Behera <trblinux@gmail.com> wrote: > On 06/24/2014 02:19 AM, Doug Anderson wrote: >> This adds cros_ec to exynos5420-peach-pit and exynos5800-peach-pi, >> including: >> * The keyboard >> * The i2c tunnel >> * The tps65090 under the i2c tunnel >> * The battery under the i2c tunnel >> >> To add extra motivation, it should be noted that tps65090 is one of >> the things needed to get display-related FETs turned on for pit and >> pi. >> >> Note that this relies on a few outstanding changes: >> * Needs (spi: s3c64xx: fix broken "cs_gpios" usage in the driver) and >> (spi: s3c64xx: for DT platofrms always get the chipselect info from >> DT node) to work properly and match the documented bindings. See >> <https://patchwork.kernel.org/patch/4346701/> and >> <https://patchwork.kernel.org/patch/4346711/> >> >> Signed-off-by: Doug Anderson <dianders@chromium.org> >> Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > > Along with the dependency patches on next-20140623, tested keyboard on > Peach-Pi board. > > Tested-by: Tushar Behera <tushar.b@samsung.com> > > Some comments below. > >> --- >> Changes in v2: >> - Now just one patch since mfd patch landed. >> - Rebased to ToT linux-next >> >> arch/arm/boot/dts/exynos5420-peach-pit.dts | 145 +++++++++++++++++++++++++++++ >> arch/arm/boot/dts/exynos5800-peach-pi.dts | 145 +++++++++++++++++++++++++++++ >> 2 files changed, 290 insertions(+) >> >> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts >> index 7649982..581f385 100644 >> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts >> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts > >> + regulators { >> + dcdc1 { >> + ti,enable-ext-control; >> + }; >> + dcdc2 { >> + ti,enable-ext-control; >> + }; >> + dcdc3 { >> + ti,enable-ext-control; >> + }; >> + fet1 { > > "tps65090_fet1: fet1 {" ? > >> + regulator-name = "vcd_led"; >> + }; >> + tps65090_fet2: fet2 { > > I would suggest we add similar labels to fet1, fet3, fet4, fet5 and fet6 > also. That way it would be easy to reference them in subsequent DT nodes. > > Same comment for Peach-Pi dts file too. OK. I added it to all the regulators in tps65090. That'll probably be useful for Javier in his max77802 work. -Doug
Hello Doug, On 06/24/2014 06:28 PM, Doug Anderson wrote: > Tushar, > > On Mon, Jun 23, 2014 at 11:43 PM, Tushar Behera <trblinux@gmail.com> wrote: >> On 06/24/2014 02:19 AM, Doug Anderson wrote: >>> This adds cros_ec to exynos5420-peach-pit and exynos5800-peach-pi, >>> including: >>> * The keyboard >>> * The i2c tunnel >>> * The tps65090 under the i2c tunnel >>> * The battery under the i2c tunnel >>> >>> To add extra motivation, it should be noted that tps65090 is one of >>> the things needed to get display-related FETs turned on for pit and >>> pi. >>> >>> Note that this relies on a few outstanding changes: >>> * Needs (spi: s3c64xx: fix broken "cs_gpios" usage in the driver) and >>> (spi: s3c64xx: for DT platofrms always get the chipselect info from >>> DT node) to work properly and match the documented bindings. See >>> <https://patchwork.kernel.org/patch/4346701/> and >>> <https://patchwork.kernel.org/patch/4346711/> >>> >>> Signed-off-by: Doug Anderson <dianders@chromium.org> >>> Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> >> >> Along with the dependency patches on next-20140623, tested keyboard on >> Peach-Pi board. >> >> Tested-by: Tushar Behera <tushar.b@samsung.com> >> >> Some comments below. >> >>> --- >>> Changes in v2: >>> - Now just one patch since mfd patch landed. >>> - Rebased to ToT linux-next >>> >>> arch/arm/boot/dts/exynos5420-peach-pit.dts | 145 +++++++++++++++++++++++++++++ >>> arch/arm/boot/dts/exynos5800-peach-pi.dts | 145 +++++++++++++++++++++++++++++ >>> 2 files changed, 290 insertions(+) >>> >>> diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts >>> index 7649982..581f385 100644 >>> --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts >>> +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts >> >>> + regulators { >>> + dcdc1 { >>> + ti,enable-ext-control; >>> + }; >>> + dcdc2 { >>> + ti,enable-ext-control; >>> + }; >>> + dcdc3 { >>> + ti,enable-ext-control; >>> + }; >>> + fet1 { >> >> "tps65090_fet1: fet1 {" ? >> >>> + regulator-name = "vcd_led"; >>> + }; >>> + tps65090_fet2: fet2 { >> >> I would suggest we add similar labels to fet1, fet3, fet4, fet5 and fet6 >> also. That way it would be easy to reference them in subsequent DT nodes. >> >> Same comment for Peach-Pi dts file too. > > OK. I added it to all the regulators in tps65090. That'll probably > be useful for Javier in his max77802 work. > Thanks, in fact I did add both tps65090_dcdc1 and tps65090_dcdc2 labels to be able to use these regulators as supply for some of the max77802 regulators. Will rebase on top of this. Best regards, Javier > -Doug >
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts index 7649982..581f385 100644 --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts @@ -25,6 +25,11 @@ "google,pit", "google,peach","samsung,exynos5420", "samsung,exynos5"; + aliases { + /* Assign 20 so we don't get confused w/ builtin ones */ + i2c20 = "/spi@12d40000/cros-ec@0/i2c-tunnel"; + }; + backlight { compatible = "pwm-backlight"; pwms = <&pwm 0 1000000 0>; @@ -87,6 +92,13 @@ pinctrl-0 = <&usb301_vbus_en>; enable-active-high; }; + + vbat: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbat-supply"; + regulator-boot-on; + regulator-always-on; + }; }; &dp { @@ -231,6 +243,20 @@ samsung,pin-drv = <0>; }; + ec_irq: ec-irq { + samsung,pins = "gpx1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + tps65090_irq: tps65090-irq { + samsung,pins = "gpx2-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + dp_hpd_gpio: dp_hpd_gpio { samsung,pins = "gpx2-6"; samsung,pin-function = <0>; @@ -247,6 +273,19 @@ }; &pinctrl_3 { + /* Drive SPI lines at x2 for better integrity */ + spi2-bus { + samsung,pin-drv = <2>; + }; + + /* Drive SPI chip select at x2 for better integrity */ + ec_spi_cs: ec-spi-cs { + samsung,pins = "gpb1-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + usb300_vbus_en: usb300-vbus-en { samsung,pins = "gph0-0"; samsung,pin-function = <1>; @@ -266,6 +305,111 @@ status = "okay"; }; +&spi_2 { + status = "okay"; + num-cs = <1>; + samsung,spi-src-clk = <0>; + cs-gpios = <&gpb1 2 0>; + + cros_ec: cros-ec@0 { + compatible = "google,cros-ec-spi"; + interrupt-parent = <&gpx1>; + interrupts = <5 0>; + pinctrl-names = "default"; + pinctrl-0 = <&ec_spi_cs &ec_irq>; + reg = <0>; + spi-max-frequency = <3125000>; + + controller-data { + samsung,spi-feedback-delay = <1>; + }; + + i2c-tunnel { + compatible = "google,cros-ec-i2c-tunnel"; + #address-cells = <1>; + #size-cells = <0>; + google,remote-bus = <0>; + + battery: sbs-battery@b { + compatible = "sbs,sbs-battery"; + reg = <0xb>; + sbs,poll-retry-count = <1>; + sbs,i2c-retry-count = <2>; + }; + + power-regulator@48 { + compatible = "ti,tps65090"; + reg = <0x48>; + + /* + * Config irq to disable internal pulls + * even though we run in polling mode. + */ + pinctrl-names = "default"; + pinctrl-0 = <&tps65090_irq>; + + vsys1-supply = <&vbat>; + vsys2-supply = <&vbat>; + vsys3-supply = <&vbat>; + infet1-supply = <&vbat>; + infet2-supply = <&vbat>; + infet3-supply = <&vbat>; + infet4-supply = <&vbat>; + infet5-supply = <&vbat>; + infet6-supply = <&vbat>; + infet7-supply = <&vbat>; + vsys-l1-supply = <&vbat>; + vsys-l2-supply = <&vbat>; + + regulators { + dcdc1 { + ti,enable-ext-control; + }; + dcdc2 { + ti,enable-ext-control; + }; + dcdc3 { + ti,enable-ext-control; + }; + fet1 { + regulator-name = "vcd_led"; + }; + tps65090_fet2: fet2 { + regulator-name = "video_mid"; + regulator-always-on; + }; + fet3 { + regulator-name = "wwan_r"; + regulator-always-on; + }; + fet4 { + regulator-name = "sdcard"; + regulator-always-on; + }; + fet5 { + regulator-name = "camout"; + }; + fet6 { + regulator-name = "lcd_vdd"; + }; + tps65090_fet7: fet7 { + regulator-name = "video_mid_1a"; + regulator-always-on; + }; + ldo1 { + }; + ldo2 { + }; + }; + + charger { + compatible = "ti,tps65090-charger"; + }; + }; + }; + }; +}; + &uart_3 { status = "okay"; }; @@ -287,3 +431,4 @@ timeout-sec = <32>; }; +#include "cros-ec-keyboard.dtsi" diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts index 2c2c137..b2dc290 100644 --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts @@ -23,6 +23,11 @@ "google,pi", "google,peach", "samsung,exynos5800", "samsung,exynos5"; + aliases { + /* Assign 20 so we don't get confused w/ builtin ones */ + i2c20 = "/spi@12d40000/cros-ec@0/i2c-tunnel"; + }; + backlight { compatible = "pwm-backlight"; pwms = <&pwm 0 1000000 0>; @@ -85,6 +90,13 @@ pinctrl-0 = <&usb301_vbus_en>; enable-active-high; }; + + vbat: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbat-supply"; + regulator-boot-on; + regulator-always-on; + }; }; &dp { @@ -229,6 +241,20 @@ samsung,pin-drv = <0>; }; + ec_irq: ec-irq { + samsung,pins = "gpx1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + tps65090_irq: tps65090-irq { + samsung,pins = "gpx2-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + dp_hpd_gpio: dp_hpd_gpio { samsung,pins = "gpx2-6"; samsung,pin-function = <0>; @@ -245,6 +271,19 @@ }; &pinctrl_3 { + /* Drive SPI lines at x2 for better integrity */ + spi2-bus { + samsung,pin-drv = <2>; + }; + + /* Drive SPI chip select at x2 for better integrity */ + ec_spi_cs: ec-spi-cs { + samsung,pins = "gpb1-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + usb300_vbus_en: usb300-vbus-en { samsung,pins = "gph0-0"; samsung,pin-function = <1>; @@ -264,6 +303,111 @@ status = "okay"; }; +&spi_2 { + status = "okay"; + num-cs = <1>; + samsung,spi-src-clk = <0>; + cs-gpios = <&gpb1 2 0>; + + cros_ec: cros-ec@0 { + compatible = "google,cros-ec-spi"; + interrupt-parent = <&gpx1>; + interrupts = <5 0>; + pinctrl-names = "default"; + pinctrl-0 = <&ec_spi_cs &ec_irq>; + reg = <0>; + spi-max-frequency = <3125000>; + + controller-data { + samsung,spi-feedback-delay = <1>; + }; + + i2c-tunnel { + compatible = "google,cros-ec-i2c-tunnel"; + #address-cells = <1>; + #size-cells = <0>; + google,remote-bus = <0>; + + battery: sbs-battery@b { + compatible = "sbs,sbs-battery"; + reg = <0xb>; + sbs,poll-retry-count = <1>; + sbs,i2c-retry-count = <2>; + }; + + power-regulator@48 { + compatible = "ti,tps65090"; + reg = <0x48>; + + /* + * Config irq to disable internal pulls + * even though we run in polling mode. + */ + pinctrl-names = "default"; + pinctrl-0 = <&tps65090_irq>; + + vsys1-supply = <&vbat>; + vsys2-supply = <&vbat>; + vsys3-supply = <&vbat>; + infet1-supply = <&vbat>; + infet2-supply = <&vbat>; + infet3-supply = <&vbat>; + infet4-supply = <&vbat>; + infet5-supply = <&vbat>; + infet6-supply = <&vbat>; + infet7-supply = <&vbat>; + vsys-l1-supply = <&vbat>; + vsys-l2-supply = <&vbat>; + + regulators { + dcdc1 { + ti,enable-ext-control; + }; + dcdc2 { + ti,enable-ext-control; + }; + dcdc3 { + ti,enable-ext-control; + }; + fet1 { + regulator-name = "vcd_led"; + }; + tps65090_fet2: fet2 { + regulator-name = "video_mid"; + regulator-always-on; + }; + fet3 { + regulator-name = "wwan_r"; + regulator-always-on; + }; + fet4 { + regulator-name = "sdcard"; + regulator-always-on; + }; + fet5 { + regulator-name = "camout"; + }; + fet6 { + regulator-name = "lcd_vdd"; + }; + tps65090_fet7: fet7 { + regulator-name = "video_mid_1a"; + regulator-always-on; + }; + ldo1 { + }; + ldo2 { + }; + }; + + charger { + compatible = "ti,tps65090-charger"; + }; + }; + }; + }; +}; + &uart_3 { status = "okay"; }; @@ -285,3 +429,4 @@ timeout-sec = <32>; }; +#include "cros-ec-keyboard.dtsi"