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 diand...@chromium.org
Tested-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
Tested-by: Tushar Behera tusha...@samsung.com
---
Changes in v3:
- Added aliases for tps65090 regulators as per Tushar.
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..b2f1237 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@12d4/cros-ec@0/i2c-tunnel;
+ };
+
backlight {
compatible = pwm-backlight;
pwms = pwm 0 100 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;
+