Merge tag 'samsung-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
authorOlof Johansson <olof@lixom.net>
Sat, 19 Jul 2014 22:06:48 +0000 (15:06 -0700)
committerOlof Johansson <olof@lixom.net>
Sat, 19 Jul 2014 22:06:48 +0000 (15:06 -0700)
Merge "Samsung DT updates for v3.17" from Kukjin Kim:

exynos3250: add i2s dt for audio interface

exynos4
 - cleanup arm-pmu node because of 4 pmu on
   exynos4412 but 2 pmu on other exynos4 SoCs
 - add support sub-nodes to exynos usb host for exynos4

exynos4412-odroid-common
 - fix T-FLASH hotplug detection
 - disable 'always on' for BUCK8
 - add support for GPIO based buttons
 - add MAX98090 audio codec

exynos4412-odroidx2 and exynos4412-odroidu3
- refactor exynos4412-odroidx and exynos4412-odroid-common
  for odroid-x2 and u2/u3

exynos4412-odroidx
 - add support for USB phy, host and device
 - enable common hardware blocks, secure firmware calls,
   watchdog, g2d and fimc (mem2mem) multimedia accelerators
 - add support for USB phy, host and device
 - correct memory size

exynos5410
 - fill in CPU clock-frequency property to avoid warning

exynos5420
 - remove display pd because of instability

exynos5420-peach-pit and exynos5800-peach-pi
 - sort nodes each other to check its differences easily
 - enable audio support and add sound-card name property
 - add mask-tpm-reset node
 - add cros_ec including keyboard, i2c tunnel and tps65090
   and battery under the i2c tunnel

* tag 'samsung-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: Add I2S dt node for exynos3250
  ARM: dts: Add cros_ec to exynos5420-peach-pit and exynos5800-peach-pi
  ARM: dts: clean up arm-pmu node for exynos4
  ARM: dts: remove display power domain for exynos5420
  ARM: dts: Add sound nodes for Odroid-X2/U3 boards
  ARM: dts: fix T-FLASH hotplug detection for exynos4412-odroid-common
  ARM: dts: add support for GPIO buttons for exynos4412-odroid
  ARM: dts: disable 'always on' for BUCK8 regulator for exynos4412-odroid-common
  ARM: dts: refactor Odroid DTS file and add support for Odroid X2 and U2/U3
  ARM: dts: correct memory size for exynos4412-odroidx
  ARM: dts: add support for USB phy, host and device for exynos4412-odroidx
  ARM: dts: enable common hardware blocks for exynos4412-odroidx
  ARM: dts: add port sub-nodes to exynos usb host modules for exynos4
  ARM: dts: Add mask-tpm-reset node in exynos5800-peach-pi
  ARM: dts: Add mask-tpm-reset node in exynos5420-peach-pit
  ARM: dts: Add sound-card name for Snow/Peach-Pit/Peach-Pi
  ARM: dts: Fill in CPU clock-frequency for exynos5410
  ARM: dts: Sort nodes within Peach-pit/Peach-pi dts files
  ARM: dts: Enable audio support for exynos5800-peach-pi

15 files changed:
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/exynos3250.dtsi
arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4412-odroid-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos4412-odroidu3.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos4412-odroidx.dts
arch/arm/boot/dts/exynos4412-odroidx2.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos4412.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5250-snow.dts
arch/arm/boot/dts/exynos5410.dtsi
arch/arm/boot/dts/exynos5420-peach-pit.dts
arch/arm/boot/dts/exynos5420.dtsi
arch/arm/boot/dts/exynos5800-peach-pi.dts

index 922fa5c..81bd72a 100644 (file)
@@ -66,7 +66,9 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
        exynos4210-smdkv310.dtb \
        exynos4210-trats.dtb \
        exynos4210-universal_c210.dtb \
+       exynos4412-odroidu3.dtb \
        exynos4412-odroidx.dtb \
+       exynos4412-odroidx2.dtb \
        exynos4412-origen.dtb \
        exynos4412-smdk4412.dtb \
        exynos4412-tiny4412.dtb \
index 3e678fa..77a06df 100644 (file)
                        status = "disabled";
                };
 
+               i2s2: i2s@13970000 {
+                       compatible = "samsung,s3c6410-i2s";
+                       reg = <0x13970000 0x100>;
+                       interrupts = <0 126 0>;
+                       clocks = <&cmu CLK_I2S>, <&cmu CLK_SCLK_I2S>;
+                       clock-names = "iis", "i2s_opclk0";
+                       dmas = <&pdma0 14>, <&pdma0 13>;
+                       dma-names = "tx", "rx";
+                       pinctrl-0 = <&i2s2_bus>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+               };
+
                pwm: pwm@139D0000 {
                        compatible = "samsung,exynos4210-pwm";
                        reg = <0x139D0000 0x1000>;
index 17b22e9..08ea6dc 100644 (file)
                reg = <0x10440000 0x1000>;
        };
 
+       pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupt-parent = <&combiner>;
+               interrupts = <2 2>, <3 2>;
+       };
+
        sys_reg: syscon@10010000 {
                compatible = "samsung,exynos4-sysreg", "syscon";
                reg = <0x10010000 0x400>;
                clocks = <&clock CLK_USB_HOST>;
                clock-names = "usbhost";
                status = "disabled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               port@0 {
+                   reg = <0>;
+                   phys = <&exynos_usbphy 1>;
+                   status = "disabled";
+               };
+               port@1 {
+                   reg = <1>;
+                   phys = <&exynos_usbphy 2>;
+                   status = "disabled";
+               };
+               port@2 {
+                   reg = <2>;
+                   phys = <&exynos_usbphy 3>;
+                   status = "disabled";
+               };
        };
 
        ohci@12590000 {
                clocks = <&clock CLK_USB_HOST>;
                clock-names = "usbhost";
                status = "disabled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               port@0 {
+                   reg = <0>;
+                   phys = <&exynos_usbphy 1>;
+                   status = "disabled";
+               };
        };
 
        i2s1: i2s@13960000 {
index ee3001f..a4f28e8 100644 (file)
                #clock-cells = <1>;
        };
 
-       pmu {
-               compatible = "arm,cortex-a9-pmu";
-               interrupt-parent = <&combiner>;
-               interrupts = <2 2>, <3 2>;
-       };
-
        pinctrl_0: pinctrl@11400000 {
                compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11400000 0x1000>;
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
new file mode 100644 (file)
index 0000000..6d6d23c
--- /dev/null
@@ -0,0 +1,371 @@
+/*
+ * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards
+ * device tree source
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <dt-bindings/input/input.h>
+#include "exynos4412.dtsi"
+
+/ {
+       firmware@0204F000 {
+               compatible = "samsung,secure-firmware";
+               reg = <0x0204F000 0x1000>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_power_key>;
+
+               power_key {
+                       interrupt-parent = <&gpx1>;
+                       interrupts = <3 0>;
+                       gpios = <&gpx1 3 1>;
+                       linux,code = <KEY_POWER>;
+                       label = "power key";
+                       debounce-interval = <10>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       i2s0: i2s@03830000 {
+               pinctrl-0 = <&i2s0_bus>;
+               pinctrl-names = "default";
+               status = "okay";
+               clocks = <&clock_audss EXYNOS_I2S_BUS>,
+                        <&clock_audss EXYNOS_DOUT_AUD_BUS>;
+               clock-names = "iis", "i2s_opclk0";
+       };
+
+       sound: sound {
+               compatible = "samsung,odroidx2-audio";
+               samsung,i2s-controller = <&i2s0>;
+               samsung,audio-codec = <&max98090>;
+       };
+
+       mmc@12550000 {
+               pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
+               pinctrl-names = "default";
+               vmmc-supply = <&ldo20_reg &buck8_reg>;
+               status = "okay";
+
+               num-slots = <1>;
+               supports-highspeed;
+               broken-cd;
+               card-detect-delay = <200>;
+               samsung,dw-mshc-ciu-div = <3>;
+               samsung,dw-mshc-sdr-timing = <2 3>;
+               samsung,dw-mshc-ddr-timing = <1 2>;
+
+               slot@0 {
+                       reg = <0>;
+                       bus-width = <8>;
+               };
+       };
+
+       watchdog@10060000 {
+               status = "okay";
+       };
+
+       rtc@10070000 {
+               status = "okay";
+       };
+
+       g2d@10800000 {
+               status = "okay";
+       };
+
+       camera {
+               status = "okay";
+               pinctrl-names = "default";
+               pinctrl-0 = <>;
+
+               fimc_0: fimc@11800000 {
+                       status = "okay";
+               };
+
+               fimc_1: fimc@11810000 {
+                       status = "okay";
+               };
+
+               fimc_2: fimc@11820000 {
+                       status = "okay";
+               };
+
+               fimc_3: fimc@11830000 {
+                       status = "okay";
+               };
+       };
+
+       sdhci@12530000 {
+               bus-width = <4>;
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+               pinctrl-names = "default";
+               vmmc-supply = <&ldo4_reg &ldo21_reg>;
+               cd-gpios = <&gpk2 2 0>;
+               cd-inverted;
+               status = "okay";
+       };
+
+       serial@13800000 {
+               status = "okay";
+       };
+
+       serial@13810000 {
+               status = "okay";
+       };
+
+       fixed-rate-clocks {
+               xxti {
+                       compatible = "samsung,clock-xxti";
+                       clock-frequency = <0>;
+               };
+
+               xusbxti {
+                       compatible = "samsung,clock-xusbxti";
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       i2c@13860000 {
+               pinctrl-0 = <&i2c0_bus>;
+               pinctrl-names = "default";
+               status = "okay";
+
+               usb3503: usb3503@08 {
+                       compatible = "smsc,usb3503";
+                       reg = <0x08>;
+
+                       intn-gpios = <&gpx3 0 0>;
+                       connect-gpios = <&gpx3 4 0>;
+                       reset-gpios = <&gpx3 5 0>;
+                       initial-mode = <1>;
+               };
+
+               max77686: pmic@09 {
+                       compatible = "maxim,max77686";
+                       reg = <0x09>;
+                       #clock-cells = <1>;
+
+                       voltage-regulators {
+                               ldo1_reg: LDO1 {
+                                       regulator-name = "VDD_ALIVE_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo2_reg: LDO2 {
+                                       regulator-name = "VDDQ_M1_2_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo3_reg: LDO3 {
+                                       regulator-name = "VDDQ_EXT_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo4_reg: LDO4 {
+                                       regulator-name = "VDDQ_MMC2_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo5_reg: LDO5 {
+                                       regulator-name = "VDDQ_MMC1_3_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo6_reg: LDO6 {
+                                       regulator-name = "VDD10_MPLL_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo7_reg: LDO7 {
+                                       regulator-name = "VDD10_XPLL_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo11_reg: LDO11 {
+                                       regulator-name = "VDD18_ABB1_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo12_reg: LDO12 {
+                                       regulator-name = "VDD33_USB_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo13_reg: LDO13 {
+                                       regulator-name = "VDDQ_C2C_W_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo14_reg: LDO14 {
+                                       regulator-name = "VDD18_ABB0_2_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo15_reg: LDO15 {
+                                       regulator-name = "VDD10_HSIC_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo16_reg: LDO16 {
+                                       regulator-name = "VDD18_HSIC_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo20_reg: LDO20 {
+                                       regulator-name = "LDO20_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-boot-on;
+                               };
+
+                               ldo21_reg: LDO21 {
+                                       regulator-name = "LDO21_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo25_reg: LDO25 {
+                                       regulator-name = "VDDQ_LCD_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck1_reg: BUCK1 {
+                                       regulator-name = "vdd_mif";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck2_reg: BUCK2 {
+                                       regulator-name = "vdd_arm";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck3_reg: BUCK3 {
+                                       regulator-name = "vdd_int";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck4_reg: BUCK4 {
+                                       regulator-name = "vdd_g3d";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-microvolt-offset = <50000>;
+                               };
+
+                               buck5_reg: BUCK5 {
+                                       regulator-name = "VDDQ_CKEM1_2_1.2V";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck6_reg: BUCK6 {
+                                       regulator-name = "BUCK6_1.35V";
+                                       regulator-min-microvolt = <1350000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck7_reg: BUCK7 {
+                                       regulator-name = "BUCK7_2.0V";
+                                       regulator-min-microvolt = <2000000>;
+                                       regulator-max-microvolt = <2000000>;
+                                       regulator-always-on;
+                               };
+
+                               buck8_reg: BUCK8 {
+                                       regulator-name = "BUCK8_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                               };
+                       };
+               };
+       };
+
+       i2c@13870000 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_bus>;
+               status = "okay";
+               max98090: max98090@10 {
+                       compatible = "maxim,max98090";
+                       reg = <0x10>;
+                       interrupt-parent = <&gpx0>;
+                       interrupts = <0 0>;
+               };
+       };
+
+       exynos-usbphy@125B0000 {
+               status = "okay";
+       };
+
+       hsotg@12480000 {
+               status = "okay";
+               vusb_d-supply = <&ldo15_reg>;
+               vusb_a-supply = <&ldo12_reg>;
+       };
+
+       ehci: ehci@12580000 {
+               status = "okay";
+       };
+};
+
+&pinctrl_1 {
+       gpio_power_key: power_key {
+               samsung,pins = "gpx1-3";
+               samsung,pin-pud = <0>;
+       };
+};
diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts b/arch/arm/boot/dts/exynos4412-odroidu3.dts
new file mode 100644 (file)
index 0000000..c8a64be
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Hardkernel's Exynos4412 based ODROID-U3 board device tree source
+ *
+ * Copyright (c) 2014 Marek Szyprowski <m.szyprowski@samsung.com>
+ *
+ * Device tree source file for Hardkernel's ODROID-U3 board which is based
+ * on Samsung's Exynos4412 SoC.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/dts-v1/;
+#include "exynos4412-odroid-common.dtsi"
+
+/ {
+       model = "Hardkernel ODROID-U3 board based on Exynos4412";
+       compatible = "hardkernel,odroid-u3", "samsung,exynos4412", "samsung,exynos4";
+
+       memory {
+               reg = <0x40000000 0x7FF00000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led1 {
+                       label = "led1:heart";
+                       gpios = <&gpc1 0 1>;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&usb3503 {
+       clock-names = "refclk";
+       clocks = <&pmu_system_controller 0>;
+       refclk-frequency = <24000000>;
+};
+
+&ehci {
+       port@1 {
+               status = "okay";
+       };
+       port@2 {
+               status = "okay";
+       };
+};
+
+&sound {
+       compatible = "samsung,odroidu3-audio";
+       samsung,model = "Odroid-U3";
+       samsung,audio-routing =
+               "Headphone Jack", "HPL",
+               "Headphone Jack", "HPR",
+               "Headphone Jack", "MICBIAS",
+               "IN1", "Headphone Jack",
+               "Speakers", "SPKL",
+               "Speakers", "SPKR";
+};
index 31db28a..cb1cfe7 100644 (file)
@@ -3,8 +3,8 @@
  *
  * Copyright (c) 2012 Dongjin Kim <tobetter@gmail.com>
  *
- * Device tree source file for Hardkernel's ODROID-X board which is based on
- * Samsung's Exynos4412 SoC.
+ * Device tree source file for Hardkernel's ODROID-X board which is based
+ * on Samsung's Exynos4412 SoC.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
 */
 
 /dts-v1/;
-#include "exynos4412.dtsi"
+#include "exynos4412-odroid-common.dtsi"
 
 / {
        model = "Hardkernel ODROID-X board based on Exynos4412";
        compatible = "hardkernel,odroid-x", "samsung,exynos4412", "samsung,exynos4";
 
        memory {
-               reg = <0x40000000 0x40000000>;
+               reg = <0x40000000 0x3FF00000>;
        };
 
        leds {
                };
        };
 
-       mmc@12550000 {
-               pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
-               pinctrl-names = "default";
-               vmmc-supply = <&ldo20_reg &buck8_reg>;
+       serial@13820000 {
                status = "okay";
+       };
 
-               num-slots = <1>;
-               supports-highspeed;
-               broken-cd;
-               card-detect-delay = <200>;
-               samsung,dw-mshc-ciu-div = <3>;
-               samsung,dw-mshc-sdr-timing = <2 3>;
-               samsung,dw-mshc-ddr-timing = <1 2>;
+       serial@13830000 {
+               status = "okay";
+       };
 
-               slot@0 {
-                       reg = <0>;
-                       bus-width = <8>;
+       gpio_keys {
+               pinctrl-0 = <&gpio_power_key &gpio_home_key>;
+
+               home_key {
+                       interrupt-parent = <&gpx2>;
+                       interrupts = <2 0>;
+                       gpios = <&gpx2 2 0>;
+                       linux,code = <KEY_HOME>;
+                       label = "home key";
+                       debounce-interval = <10>;
+                       gpio-key,wakeup;
                };
        };
 
                regulator-max-microvolt = <3300000>;
                gpio = <&gpa1 1 1>;
                enable-active-high;
-               regulator-boot-on;
-       };
-
-       rtc@10070000 {
-               status = "okay";
-       };
-
-       sdhci@12530000 {
-               bus-width = <4>;
-               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-               pinctrl-names = "default";
-               vmmc-supply = <&ldo4_reg &ldo21_reg>;
-               status = "okay";
-       };
-
-       serial@13800000 {
-               status = "okay";
-       };
-
-       serial@13810000 {
-               status = "okay";
-       };
-
-       serial@13820000 {
-               status = "okay";
+               regulator-always-on;
        };
+};
 
-       serial@13830000 {
+&ehci {
+       port@1 {
                status = "okay";
        };
+};
 
-       fixed-rate-clocks {
-               xxti {
-                       compatible = "samsung,clock-xxti";
-                       clock-frequency = <0>;
-               };
-
-               xusbxti {
-                       compatible = "samsung,clock-xusbxti";
-                       clock-frequency = <24000000>;
-               };
-       };
-
-       i2c@13860000 {
-               pinctrl-0 = <&i2c0_bus>;
-               pinctrl-names = "default";
-               status = "okay";
-
-               max77686: pmic@09 {
-                       compatible = "maxim,max77686";
-                       reg = <0x09>;
-                       #clock-cells = <1>;
-
-                       voltage-regulators {
-                               ldo1_reg: LDO1 {
-                                       regulator-name = "VDD_ALIVE_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo2_reg: LDO2 {
-                                       regulator-name = "VDDQ_M1_2_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo3_reg: LDO3 {
-                                       regulator-name = "VDDQ_EXT_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo4_reg: LDO4 {
-                                       regulator-name = "VDDQ_MMC2_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo5_reg: LDO5 {
-                                       regulator-name = "VDDQ_MMC1_3_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo6_reg: LDO6 {
-                                       regulator-name = "VDD10_MPLL_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo7_reg: LDO7 {
-                                       regulator-name = "VDD10_XPLL_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo11_reg: LDO11 {
-                                       regulator-name = "VDD18_ABB1_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo12_reg: LDO12 {
-                                       regulator-name = "VDD33_USB_3.3V";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo13_reg: LDO13 {
-                                       regulator-name = "VDDQ_C2C_W_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo14_reg: LDO14 {
-                                       regulator-name = "VDD18_ABB0_2_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo15_reg: LDO15 {
-                                       regulator-name = "VDD10_HSIC_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo16_reg: LDO16 {
-                                       regulator-name = "VDD18_HSIC_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo20_reg: LDO20 {
-                                       regulator-name = "LDO20_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-boot-on;
-                               };
-
-                               ldo21_reg: LDO21 {
-                                       regulator-name = "LDO21_3.3V";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo25_reg: LDO25 {
-                                       regulator-name = "VDDQ_LCD_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck1_reg: BUCK1 {
-                                       regulator-name = "vdd_mif";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck2_reg: BUCK2 {
-                                       regulator-name = "vdd_arm";
-                                       regulator-min-microvolt = <900000>;
-                                       regulator-max-microvolt = <1350000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck3_reg: BUCK3 {
-                                       regulator-name = "vdd_int";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck4_reg: BUCK4 {
-                                       regulator-name = "vdd_g3d";
-                                       regulator-min-microvolt = <900000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-microvolt-offset = <50000>;
-                               };
-
-                               buck5_reg: BUCK5 {
-                                       regulator-name = "VDDQ_CKEM1_2_1.2V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck6_reg: BUCK6 {
-                                       regulator-name = "BUCK6_1.35V";
-                                       regulator-min-microvolt = <1350000>;
-                                       regulator-max-microvolt = <1350000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck7_reg: BUCK7 {
-                                       regulator-name = "BUCK7_2.0V";
-                                       regulator-min-microvolt = <2000000>;
-                                       regulator-max-microvolt = <2000000>;
-                                       regulator-always-on;
-                               };
-
-                               buck8_reg: BUCK8 {
-                                       regulator-name = "BUCK8_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                               };
-                       };
-               };
+&pinctrl_1 {
+       gpio_home_key: home_key {
+               samsung,pins = "gpx2-2";
+               samsung,pin-pud = <0>;
        };
 };
diff --git a/arch/arm/boot/dts/exynos4412-odroidx2.dts b/arch/arm/boot/dts/exynos4412-odroidx2.dts
new file mode 100644 (file)
index 0000000..96b43f4
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Hardkernel's Exynos4412 based ODROID-X2 board device tree source
+ *
+ * Copyright (c) 2012 Dongjin Kim <tobetter@gmail.com>
+ *
+ * Device tree source file for Hardkernel's ODROID-X2 board which is based
+ * on Samsung's Exynos4412 SoC.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include "exynos4412-odroidx.dts"
+
+/ {
+       model = "Hardkernel ODROID-X2 board based on Exynos4412";
+       compatible = "hardkernel,odroid-x2", "samsung,exynos4412", "samsung,exynos4";
+
+       memory {
+               reg = <0x40000000 0x7FF00000>;
+       };
+};
+
+&sound {
+       samsung,model = "Odroid-X2";
+       samsung,audio-routing =
+               "Headphone Jack", "HPL",
+               "Headphone Jack", "HPR",
+               "IN1", "Mic Jack",
+               "Mic Jack", "MICBIAS";
+};
index c42a3e1..d8bc059 100644 (file)
                samsung,combiner-nr = <20>;
        };
 
+       pmu {
+               interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
+       };
+
        gic: interrupt-controller@10490000 {
                cpu-offset = <0x4000>;
        };
index c5a943d..95cdfb9 100644 (file)
                mshc0 = &mshc_0;
        };
 
-       pmu {
-               compatible = "arm,cortex-a9-pmu";
-               interrupt-parent = <&combiner>;
-               interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
-       };
-
        sysram@02020000 {
                compatible = "mmio-sram";
                reg = <0x02020000 0x40000>;
index 7bd2df1..c682c88 100644 (file)
        sound {
                compatible = "google,snow-audio-max98095";
 
+               samsung,model = "Snow-I2S-MAX98095";
                samsung,i2s-controller = <&i2s0>;
                samsung,audio-codec = <&max98095>;
        };
index 3839c26..9d0b8cc 100644 (file)
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <0x0>;
+                       clock-frequency = <1600000000>;
                };
 
                CPU1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <0x1>;
+                       clock-frequency = <1600000000>;
                };
 
                CPU2: cpu@2 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <0x2>;
+                       clock-frequency = <1600000000>;
                };
 
                CPU3: cpu@3 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <0x3>;
+                       clock-frequency = <1600000000>;
                };
        };
 
index 1c5b8f9..228a6b1 100644 (file)
                "google,pit", "google,peach","samsung,exynos5420",
                "samsung,exynos5";
 
-       memory {
-               reg = <0x20000000 0x80000000>;
+       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>;
+               brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
+               default-brightness-level = <7>;
+               pinctrl-0 = <&pwm0_out>;
+               pinctrl-names = "default";
        };
 
        fixed-rate-clocks {
                };
        };
 
-       backlight {
-               compatible = "pwm-backlight";
-               pwms = <&pwm 0 1000000 0>;
-               brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
-               default-brightness-level = <7>;
-               pinctrl-0 = <&pwm0_out>;
-               pinctrl-names = "default";
+       memory {
+               reg = <0x20000000 0x80000000>;
        };
 
        sound {
                compatible = "google,snow-audio-max98090";
 
+               samsung,model = "Peach-Pit-I2S-MAX98090";
                samsung,i2s-controller = <&i2s0>;
                samsung,audio-codec = <&max98090>;
        };
                pinctrl-0 = <&usb301_vbus_en>;
                enable-active-high;
        };
-};
 
-&pinctrl_0 {
-       max98090_irq: max98090-irq {
-               samsung,pins = "gpx0-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+       vbat: fixed-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vbat-supply";
+               regulator-boot-on;
+               regulator-always-on;
        };
+};
 
-       tpm_irq: tpm-irq {
-               samsung,pins = "gpx1-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
-       };
+&dp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd_gpio>;
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x06>;
+       samsung,lane-count = <2>;
+       samsung,hpd-gpio = <&gpx2 6 0>;
 
-       power_key_irq: power-key-irq {
-               samsung,pins = "gpx1-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
-       };
+       display-timings {
+               native-mode = <&timing1>;
 
-       hdmi_hpd_irq: hdmi-hpd-irq {
-               samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               timing1: timing@1 {
+                       clock-frequency = <70589280>;
+                       hactive = <1366>;
+                       vactive = <768>;
+                       hfront-porch = <40>;
+                       hback-porch = <40>;
+                       hsync-len = <32>;
+                       vback-porch = <10>;
+                       vfront-porch = <12>;
+                       vsync-len = <6>;
+               };
        };
+};
 
-       dp_hpd_gpio: dp_hpd_gpio {
-               samsung,pins = "gpx2-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
-       };
+&fimd {
+       status = "okay";
+       samsung,invert-vclk;
 };
 
-&pinctrl_3 {
-       usb300_vbus_en: usb300-vbus-en {
-               samsung,pins = "gph0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+&hdmi {
+       status = "okay";
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_hpd_irq>;
+       ddc = <&i2c_2>;
+};
+
+&hsi2c_7 {
+       status = "okay";
+
+       max98090: codec@10 {
+               compatible = "maxim,max98090";
+               reg = <0x10>;
+               interrupts = <2 0>;
+               interrupt-parent = <&gpx0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&max98090_irq>;
        };
+};
 
-       usb301_vbus_en: usb301-vbus-en {
-               samsung,pins = "gph0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+&hsi2c_9 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tpm@20 {
+               compatible = "infineon,slb9645tt";
+               reg = <0x20>;
+
+               /* Unused irq; but still need to configure the pins */
+               pinctrl-names = "default";
+               pinctrl-0 = <&tpm_irq>;
        };
 };
 
-&rtc {
+&i2c_2 {
        status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+       samsung,i2c-slave-addr = <0x50>;
 };
 
-&uart_3 {
+&i2s0 {
        status = "okay";
 };
 
        };
 };
 
-&hsi2c_7 {
-       status = "okay";
 
-       max98090: codec@10 {
-               compatible = "maxim,max98090";
-               reg = <0x10>;
-               interrupts = <2 0>;
-               interrupt-parent = <&gpx0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&max98090_irq>;
+&pinctrl_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mask_tpm_reset>;
+
+       max98090_irq: max98090-irq {
+               samsung,pins = "gpx0-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       /* We need GPX0_6 to be low at sleep time; just keep it low always */
+       mask_tpm_reset: mask-tpm-reset {
+               samsung,pins = "gpx0-6";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+               samsung,pin-val = <0>;
+       };
+
+       tpm_irq: tpm-irq {
+               samsung,pins = "gpx1-0";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       power_key_irq: power-key-irq {
+               samsung,pins = "gpx1-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               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>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       hdmi_hpd_irq: hdmi-hpd-irq {
+               samsung,pins = "gpx3-7";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
        };
 };
 
-&hsi2c_9 {
-       status = "okay";
-       clock-frequency = <400000>;
+&pinctrl_3 {
+       /* Drive SPI lines at x2 for better integrity */
+       spi2-bus {
+               samsung,pin-drv = <2>;
+       };
 
-       tpm@20 {
-               compatible = "infineon,slb9645tt";
-               reg = <0x20>;
+       /* 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>;
+       };
 
-               /* Unused irq; but still need to configure the pins */
-               pinctrl-names = "default";
-               pinctrl-0 = <&tpm_irq>;
+       usb300_vbus_en: usb300-vbus-en {
+               samsung,pins = "gph0-0";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       usb301_vbus_en: usb301-vbus-en {
+               samsung,pins = "gph0-1";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
        };
 };
 
-&i2c_2 {
+&rtc {
        status = "okay";
-       samsung,i2c-sda-delay = <100>;
-       samsung,i2c-max-bus-freq = <66000>;
-       samsung,i2c-slave-addr = <0x50>;
 };
 
-&hdmi {
+&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 {
+                                       tps65090_dcdc1: dcdc1 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_dcdc2: dcdc2 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_dcdc3: dcdc3 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_fet1: fet1 {
+                                               regulator-name = "vcd_led";
+                                       };
+                                       tps65090_fet2: fet2 {
+                                               regulator-name = "video_mid";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet3: fet3 {
+                                               regulator-name = "wwan_r";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet4: fet4 {
+                                               regulator-name = "sdcard";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet5: fet5 {
+                                               regulator-name = "camout";
+                                       };
+                                       tps65090_fet6: fet6 {
+                                               regulator-name = "lcd_vdd";
+                                       };
+                                       tps65090_fet7: fet7 {
+                                               regulator-name = "video_mid_1a";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_ldo1: ldo1 {
+                                       };
+                                       tps65090_ldo2: ldo2 {
+                                       };
+                               };
+
+                               charger {
+                                       compatible = "ti,tps65090-charger";
+                               };
+                       };
+               };
+       };
+};
+
+&uart_3 {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&hdmi_hpd_irq>;
-       ddc = <&i2c_2>;
 };
 
 &usbdrd_phy0 {
        timeout-sec = <32>;
 };
 
-&i2s0 {
-       status = "okay";
-};
-
-&fimd {
-       status = "okay";
-       samsung,invert-vclk;
-};
-
-&dp {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&dp_hpd_gpio>;
-       samsung,color-space = <0>;
-       samsung,dynamic-range = <0>;
-       samsung,ycbcr-coeff = <0>;
-       samsung,color-depth = <1>;
-       samsung,link-rate = <0x06>;
-       samsung,lane-count = <2>;
-       samsung,hpd-gpio = <&gpx2 6 0>;
-
-       display-timings {
-               native-mode = <&timing1>;
-
-               timing1: timing@1 {
-                       clock-frequency = <70589280>;
-                       hactive = <1366>;
-                       vactive = <768>;
-                       hfront-porch = <40>;
-                       hback-porch = <40>;
-                       hsync-len = <32>;
-                       vback-porch = <10>;
-                       vfront-porch = <12>;
-                       vsync-len = <6>;
-               };
-       };
-};
+#include "cros-ec-keyboard.dtsi"
index 1595722..b69de26 100644 (file)
                clock-names = "oscclk", "pclk0", "clk0";
        };
 
-       disp_pd: power-domain@100440C0 {
-               compatible = "samsung,exynos4210-pd";
-               reg = <0x100440C0 0x20>;
-       };
-
        msc_pd: power-domain@10044120 {
                compatible = "samsung,exynos4210-pd";
                reg = <0x10044120 0x20>;
        };
 
        fimd: fimd@14400000 {
-               samsung,power-domain = <&disp_pd>;
                clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
                clock-names = "sclk_fimd", "fimd";
        };
index f3af207..f3ee48b 100644 (file)
                "google,pi", "google,peach", "samsung,exynos5800",
                "samsung,exynos5";
 
-       memory {
-               reg = <0x20000000 0x80000000>;
+       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>;
+               brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
+               default-brightness-level = <7>;
+               pinctrl-0 = <&pwm0_out>;
+               pinctrl-names = "default";
        };
 
        fixed-rate-clocks {
                };
        };
 
-       backlight {
-               compatible = "pwm-backlight";
-               pwms = <&pwm 0 1000000 0>;
-               brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
-               default-brightness-level = <7>;
-               pinctrl-0 = <&pwm0_out>;
-               pinctrl-names = "default";
+       memory {
+               reg = <0x20000000 0x80000000>;
+       };
+
+       sound {
+               compatible = "google,snow-audio-max98091";
+
+               samsung,model = "Peach-Pi-I2S-MAX98091";
+               samsung,i2s-controller = <&i2s0>;
+               samsung,audio-codec = <&max98091>;
        };
 
        usb300_vbus_reg: regulator-usb300 {
                pinctrl-0 = <&usb301_vbus_en>;
                enable-active-high;
        };
-};
 
-&pinctrl_0 {
-       tpm_irq: tpm-irq {
-               samsung,pins = "gpx1-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+       vbat: fixed-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vbat-supply";
+               regulator-boot-on;
+               regulator-always-on;
        };
+};
 
-       power_key_irq: power-key-irq {
-               samsung,pins = "gpx1-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
-       };
+&dp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd_gpio>;
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <2>;
+       samsung,hpd-gpio = <&gpx2 6 0>;
 
-       dp_hpd_gpio: dp_hpd_gpio {
-               samsung,pins = "gpx2-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
-       };
+       display-timings {
+               native-mode = <&timing1>;
 
-       hdmi_hpd_irq: hdmi-hpd-irq {
-               samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               timing1: timing@1 {
+                       clock-frequency = <150660000>;
+                       hactive = <1920>;
+                       vactive = <1080>;
+                       hfront-porch = <60>;
+                       hback-porch = <172>;
+                       hsync-len = <80>;
+                       vback-porch = <25>;
+                       vfront-porch = <10>;
+                       vsync-len = <10>;
+               };
        };
 };
 
-&pinctrl_3 {
-       usb300_vbus_en: usb300-vbus-en {
-               samsung,pins = "gph0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+&fimd {
+       status = "okay";
+       samsung,invert-vclk;
+};
+
+&hdmi {
+       status = "okay";
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_hpd_irq>;
+       ddc = <&i2c_2>;
+};
+
+&hsi2c_7 {
+       status = "okay";
+
+       max98091: codec@10 {
+               compatible = "maxim,max98091";
+               reg = <0x10>;
+               interrupts = <2 0>;
+               interrupt-parent = <&gpx0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&max98091_irq>;
        };
+};
 
-       usb301_vbus_en: usb301-vbus-en {
-               samsung,pins = "gph0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+&hsi2c_9 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tpm@20 {
+               compatible = "infineon,slb9645tt";
+               reg = <0x20>;
+
+               /* Unused irq; but still need to configure the pins */
+               pinctrl-names = "default";
+               pinctrl-0 = <&tpm_irq>;
        };
 };
 
-&rtc {
+&i2c_2 {
        status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+       samsung,i2c-slave-addr = <0x50>;
 };
 
-&uart_3 {
+&i2s0 {
        status = "okay";
 };
 
        };
 };
 
-&dp {
-       status = "okay";
+
+&pinctrl_0 {
        pinctrl-names = "default";
-       pinctrl-0 = <&dp_hpd_gpio>;
-       samsung,color-space = <0>;
-       samsung,dynamic-range = <0>;
-       samsung,ycbcr-coeff = <0>;
-       samsung,color-depth = <1>;
-       samsung,link-rate = <0x0a>;
-       samsung,lane-count = <2>;
-       samsung,hpd-gpio = <&gpx2 6 0>;
+       pinctrl-0 = <&mask_tpm_reset>;
 
-       display-timings {
-               native-mode = <&timing1>;
+       max98091_irq: max98091-irq {
+               samsung,pins = "gpx0-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
 
-               timing1: timing@1 {
-                       clock-frequency = <150660000>;
-                       hactive = <1920>;
-                       vactive = <1080>;
-                       hfront-porch = <60>;
-                       hback-porch = <172>;
-                       hsync-len = <80>;
-                       vback-porch = <25>;
-                       vfront-porch = <10>;
-                       vsync-len = <10>;
-               };
+       /* We need GPX0_6 to be low at sleep time; just keep it low always */
+       mask_tpm_reset: mask-tpm-reset {
+               samsung,pins = "gpx0-6";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+               samsung,pin-val = <0>;
        };
-};
 
-&fimd {
-       status = "okay";
-       samsung,invert-vclk;
+       tpm_irq: tpm-irq {
+               samsung,pins = "gpx1-0";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       power_key_irq: power-key-irq {
+               samsung,pins = "gpx1-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               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>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       hdmi_hpd_irq: hdmi-hpd-irq {
+               samsung,pins = "gpx3-7";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
 };
 
-&hsi2c_9 {
-       status = "okay";
-       clock-frequency = <400000>;
+&pinctrl_3 {
+       /* Drive SPI lines at x2 for better integrity */
+       spi2-bus {
+               samsung,pin-drv = <2>;
+       };
 
-       tpm@20 {
-               compatible = "infineon,slb9645tt";
-               reg = <0x20>;
-               /* Unused irq; but still need to configure the pins */
-               pinctrl-names = "default";
-               pinctrl-0 = <&tpm_irq>;
+       /* 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>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       usb301_vbus_en: usb301-vbus-en {
+               samsung,pins = "gph0-1";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
        };
 };
 
-&i2c_2 {
+&rtc {
        status = "okay";
-       samsung,i2c-sda-delay = <100>;
-       samsung,i2c-max-bus-freq = <66000>;
-       samsung,i2c-slave-addr = <0x50>;
 };
 
-&hdmi {
+&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 {
+                                       tps65090_dcdc1: dcdc1 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_dcdc2: dcdc2 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_dcdc3: dcdc3 {
+                                               ti,enable-ext-control;
+                                       };
+                                       tps65090_fet1: fet1 {
+                                               regulator-name = "vcd_led";
+                                       };
+                                       tps65090_fet2: fet2 {
+                                               regulator-name = "video_mid";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet3: fet3 {
+                                               regulator-name = "wwan_r";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet4: fet4 {
+                                               regulator-name = "sdcard";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_fet5: fet5 {
+                                               regulator-name = "camout";
+                                       };
+                                       tps65090_fet6: fet6 {
+                                               regulator-name = "lcd_vdd";
+                                       };
+                                       tps65090_fet7: fet7 {
+                                               regulator-name = "video_mid_1a";
+                                               regulator-always-on;
+                                       };
+                                       tps65090_ldo1: ldo1 {
+                                       };
+                                       tps65090_ldo2: ldo2 {
+                                       };
+                               };
+
+                               charger {
+                                       compatible = "ti,tps65090-charger";
+                               };
+                       };
+               };
+       };
+};
+
+&uart_3 {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&hdmi_hpd_irq>;
-       ddc = <&i2c_2>;
 };
 
 &usbdrd_phy0 {
 &watchdog {
        timeout-sec = <32>;
 };
+
+#include "cros-ec-keyboard.dtsi"