summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorChanwoo Choi <cw00.choi@samsung.com>2014-09-29 20:24:20 +0900
committerChanwoo Choi <cw00.choi@samsung.com>2014-09-30 11:07:44 +0900
commitdea6e30601cbfb9bb92ba187939c75ba697c912c (patch)
tree9ccecb3e155d63192ae6ad4b7b2709ab43d8518d /arch
parentc7715204a8a2ea3595b9eed6645073f404f17244 (diff)
downloadlinux-3.10-dea6e30601cbfb9bb92ba187939c75ba697c912c.tar.gz
linux-3.10-dea6e30601cbfb9bb92ba187939c75ba697c912c.tar.bz2
linux-3.10-dea6e30601cbfb9bb92ba187939c75ba697c912c.zip
ARM: dts: Add board dts file for Exynos3250-based Rinato board
This patch add support for device tree sources for Samsung Rinato baord (Samsung Gear 2) based on Exynos3250 SoC. Change-Id: I191290a96c79bf539117da6f44724ba774f57c16 Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/Makefile3
-rw-r--r--arch/arm/boot/dts/exynos3250-pinctrl.dtsi54
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts1038
3 files changed, 1094 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b04ce1fc835..3e11dfde558 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -46,7 +46,8 @@ dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
dove-cubox.dtb \
dove-dove-db.dtb
-dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
+dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-rinato.dtb \
+ exynos4210-origen.dtb \
exynos4210-smdkv310.dtb \
exynos4210-trats.dtb \
exynos4210-universal_c210.dtb \
diff --git a/arch/arm/boot/dts/exynos3250-pinctrl.dtsi b/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
index 47b92c150f4..ecf79386e89 100644
--- a/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
@@ -12,6 +12,60 @@
* published by the Free Software Foundation.
*/
+#define PIN_PULL_NONE 0
+#define PIN_PULL_DOWN 1
+#define PIN_PULL_UP 3
+
+#define PIN_DRV_LV1 0
+#define PIN_DRV_LV2 2
+#define PIN_DRV_LV3 1
+#define PIN_DRV_LV4 3
+
+#define PIN_PDN_OUT0 0
+#define PIN_PDN_OUT1 1
+#define PIN_PDN_INPUT 2
+#define PIN_PDN_PREV 3
+
+#define PIN_IN(_pin, _pull, _drv) \
+ _pin { \
+ samsung,pins = #_pin; \
+ samsung,pin-function = <0>; \
+ samsung,pin-pud = <PIN_PULL_ ##_pull>; \
+ samsung,pin-drv = <PIN_DRV_ ##_drv>; \
+ }
+
+#define PIN_OUT(_pin, _drv) \
+ _pin { \
+ samsung,pins = #_pin; \
+ samsung,pin-function = <1>; \
+ samsung,pin-pud = <0>; \
+ samsung,pin-drv = <PIN_DRV_ ##_drv>; \
+ }
+
+#define PIN_OUT_SET(_pin, _val, _drv) \
+ _pin { \
+ samsung,pins = #_pin; \
+ samsung,pin-function = <1>; \
+ samsung,pin-pud = <0>; \
+ samsung,pin-drv = <PIN_DRV_ ##_drv>; \
+ samsung,pin-val = <_val>; \
+ }
+
+#define PIN_CFG(_pin, _sel, _pull, _drv) \
+ _pin { \
+ samsung,pins = #_pin; \
+ samsung,pin-function = <_sel>; \
+ samsung,pin-pud = <PIN_PULL_ ##_pull>; \
+ samsung,pin-drv = <PIN_DRV_ ##_drv>; \
+ }
+
+#define PIN_SLP(_pin, _mode, _pull) \
+ _pin { \
+ samsung,pins = #_pin; \
+ samsung,pin-con-pdn = <PIN_PDN_ ##_mode>; \
+ samsung,pin-pud-pdn = <PIN_PULL_ ##_pull>; \
+ }
+
&pinctrl_0 {
gpa0: gpa0 {
gpio-controller;
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
new file mode 100644
index 00000000000..9f23b71862e
--- /dev/null
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -0,0 +1,1038 @@
+/*
+ * Samsung's Exynos3250 based Rinato board device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Rinato board which is based on
+ * Samsung Exynos3250 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 "exynos3250.dtsi"
+
+/ {
+ model = "B2";
+ compatible = "samsung,rinato-rev05", "samsung,exynos3250",
+ "samsung,exynos3";
+
+ aliases {
+ i2c7 = &i2c_if_subpmic;
+ i2c8 = &i2c_ice4_irda;
+ };
+
+ memory {
+ reg = <0x40000000 0x08000000
+ 0x48000000 0x08000000
+ 0x50000000 0x08000000
+ 0x58000000 0x07F00000>;
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ contig_mem: region@51000000 {
+ compatible = "linux,contiguous-memory-region";
+ reg = <0x51000000 0x1000000>;
+ linux,default-contiguous-region;
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
+ };
+
+ firmware@0205F000 {
+ compatible = "samsung,secure-firmware";
+ reg = <0x0205F000 0x1000>;
+ };
+
+ charger-manager@0 {
+ compatible = "charger-manager";
+ status = "okay";
+
+ cm-name = "battery";
+ /* Polling only for external power source */
+ cm-poll-mode = <2>;
+ cm-poll-interval = <30000>;
+
+ cm-fullbatt-vchkdrop-ms = <30000>;
+ cm-fullbatt-vchkdrop-volt = <150000>;
+ cm-fullbatt-soc = <100>;
+
+ /* Checking battery present with fuelgauge */
+ cm-battery-stat = <0>;
+
+ cm-fuel-gauge = "max17040";
+
+ cm-charging-max = <21600000>; /* 60 hours */
+ cm-discharging-max = <300000>; /* 5 minutes */
+
+ cm-num-chargers = <1>;
+ cm-chargers = "max14577-charger";
+
+ charger@0 {
+ cm-regulator-name = "CHARGER";
+ cable@0 {
+ cm-cable-name = "USB";
+ cm-cable-extcon = "max77836-muic";
+ cm-cable-min = <450000>;
+ cm-cable-max = <450000>;
+ };
+ cable@1 {
+ cm-cable-name = "TA";
+ cm-cable-extcon = "max77836-muic";
+ cm-cable-min = <2000000>;
+ cm-cable-max = <2000000>;
+ };
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ power_gpio_keys {
+ interrupt-parent = <&gpx2>;
+ interrupts = <7 0>;
+ gpios = <&gpx2 7 1>;
+ linux,code = <116>;
+ label = "power ker";
+ debounce-interval = <10>;
+ gpio-key,wakeup;
+ };
+ };
+
+ i2c_if_subpmic: i2c-gpio-0 {
+ compatible = "i2c-gpio";
+ gpios = <&gpd0 2 0
+ &gpd0 3 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ max77836@25 {
+ compatible = "maxim,max77836";
+ reg = <0x25>;
+ interrupt-parent = <&gpx1>;
+ interrupts = <5 0>;
+ wakeup;
+
+ muic: max77836-muic {
+ compatible = "maxim,max77836-muic";
+ };
+
+ regulators {
+ compatible = "maxim,max77836-regulator";
+ safeout_reg: SAFEOUT {
+ regulator-name = "SAFEOUT";
+ };
+
+ charger_reg: CHARGER {
+ regulator-name = "CHARGER";
+ regulator-min-microamp = <45000>;
+ regulator-max-microamp = <475000>;
+ regulator-boot-on;
+ };
+
+ motor_reg: LDO1 {
+ regulator-name = "MOT_2.7V";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <2700000>;
+ };
+
+ LDO2 {
+ regulator-name = "UNUSED_LDO2";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3950000>;
+ };
+ };
+
+ charger {
+ compatible = "maxim,max77836-charger";
+
+ maxim,fast-charge-timer = <6>;
+ maxim,constant-uvolt = <4350000>;
+ maxim,fast-charge-uamp = <225000>;
+ maxim,eoc-uamp = <7500>;
+ maxim,ovp-uvolt = <6500000>;
+ };
+ };
+ };
+
+ i2c_ice4_irda: i2c-gpio-1 {
+ compatible = "i2c-gpio";
+ gpios = <&gpa1 2 0
+ &gpa1 3 0>;
+ i2c-gpio,sda-open-drain;
+ i2c-gpio,scl-open-drain;
+ i2c-gpio,delay-us = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ice4-irda@50 {
+ compatible = "samsung,ice4-irda";
+ reg = <0x50>;
+ interrupt-parent = <&gpx1>;
+ interrupts = <0 0>;
+ clocks = <&xusbxti>, <&clkout CLK_MOUT_CLKOUT>,
+ <&clkout CLK_CLKOUT>;
+ clock-names = "parent", "out-mux", "out";
+ ir-supply = <&ldo17_reg>;
+ irda-gpio = <&gpx1 0 0>;
+ creset-gpio = <&gpx2 5 0>;
+ cdone-gpio = <&gpx2 4 0>;
+ fpga-reset-gpio = <&gpe0 6 0>;
+ irda-sda-gpio = <&gpa1 2 0>;
+ irda-scl-gpio = <&gpa1 3 0>;
+ };
+ };
+
+ jack {
+ compatible = "samsung,extcon-port";
+ extcon = <&muic>;
+
+ samsung,extcon-online-usb;
+ samsung,extcon-online-charger;
+ };
+
+ rfkill-gpio {
+ compatible = "rfkill-gpio";
+ rfkill-name = "rfkill-gpio";
+ rfkill-type = <2>;
+ shutdown-gpio = <&gpe0 0 0>;
+ wake-gpio = <&gpx3 1 0>;
+ host-wake-gpio = <&gpx2 6 0>;
+ clocks = <&s2mps14_osc 2>;
+ clock-names ="bt_clk32k";
+ };
+
+ regulator-haptic {
+ compatible = "linux,regulator-haptic";
+ haptic-supply = <&motor_reg>;
+ min-microvolt = <1100000>;
+ max-microvolt = <2700000>;
+ };
+
+ sound {
+ compatible = "rinato,ymu831";
+ clocks = <&xusbxti>, <&clkout CLK_MOUT_CLKOUT>,
+ <&clkout CLK_CLKOUT>,
+ <&s2mps14_osc 2 /* S2MPS11_CLK_BT */>;
+ clock-names = "parent", "out-mux", "out", "clk_32k";
+ samsung,i2s-controller = <&i2s2>;
+ samsung,audio-codec = <&ymu831>;
+ samsung,model = "ymu831";
+ };
+
+ sec_reboot {
+ compatible = "samsung,sec-reboot";
+ power-gpio = <&gpx2 7 0>;
+ extcon = <&muic>;
+ };
+
+ vemmc_reg: voltage-regulator@0 {
+ compatible = "regulator-fixed";
+ regulator-name = "V_EMMC_2.8V-fixed";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ gpio = <&gpk0 2 0>;
+ enable-active-high;
+ };
+};
+
+&adc {
+ vdd-supply = <&ldo3_reg>;
+ status = "okay";
+ assigned-clocks = <&cmu CLK_SCLK_TSADC>;
+ assigned-clock-rates = <6000000>;
+
+ thermistor-ap@0 {
+ compatible = "ntc,ncp15wb473";
+ pullup-uv = <1800000>;
+ pullup-ohm = <100000>;
+ pulldown-ohm = <100000>;
+ io-channels = <&adc 0>;
+ };
+
+ thermistor-battery@1 {
+ compatible = "ntc,ncp15wb473";
+ pullup-uv = <1800000>;
+ pullup-ohm = <100000>;
+ pulldown-ohm = <100000>;
+ io-channels = <&adc 1>;
+ };
+};
+
+&busfreq_mif {
+ vdd_mif-supply = <&buck1_reg>;
+ status = "okay";
+};
+
+&busfreq_int {
+ vdd_int-supply = <&buck3_reg>;
+ status = "okay";
+};
+
+&cpufreq {
+ compatible = "samsung,exynos-cpufreq";
+ clocks = <&cmu CLK_DIV_CORE2>, <&cmu CLK_MOUT_CORE>,
+ <&cmu CLK_MOUT_MPLL_USER_C>, <&cmu CLK_MOUT_APLL>;
+ clock-names = "div_core2", "mout_core", "mout_mpll_user_c",
+ "mout_apll";
+ freq_table = <1000000 900000 800000 700000 600000
+ 500000 400000 300000 200000 100000>;
+ vdd_arm-supply = <&buck2_reg>;
+ status = "okay";
+};
+
+&dsi_0 {
+ vddcore-supply = <&ldo6_reg>;
+ vddio-supply = <&ldo6_reg>;
+ samsung,pll-clock-frequency = <24000000>;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ dsi_out: endpoint {
+ remote-endpoint = <&dsi_in>;
+ samsung,burst-clock-frequency = <250000000>;
+ samsung,esc-clock-frequency = <20000000>;
+ };
+ };
+ };
+
+ panel@0 {
+ compatible = "samsung,s6e63j0x03";
+ reg = <0>;
+ vdd3-supply = <&ldo16_reg>;
+ vci-supply = <&ldo20_reg>;
+ reset-gpios = <&gpe0 1 0>;
+ te-gpios = <&gpx0 6 0>;
+ power-on-delay= <30>;
+ power-off-delay= <120>;
+ reset-delay = <5>;
+ init-delay = <100>;
+ flip-horizontal;
+ flip-vertical;
+ panel-width-mm = <29>;
+ panel-height-mm = <29>;
+
+ display-timings {
+ timing-0 {
+ clock-frequency = <0>;
+ hactive = <320>;
+ vactive = <320>;
+ hfront-porch = <1>;
+ hback-porch = <1>;
+ hsync-len = <1>;
+ vfront-porch = <150>;
+ vback-porch = <1>;
+ vsync-len = <2>;
+ };
+ };
+
+ port {
+ dsi_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+ };
+};
+
+&exynos_usbphy {
+ status = "okay";
+};
+
+&fimd {
+ status = "okay";
+
+ i80-if-timings {
+ cs-setup = <0>;
+ wr-setup = <0>;
+ wr-act = <1>;
+ wr-hold = <0>;
+ };
+};
+
+&gpu {
+ vdd_g3d-supply = <&buck3_reg>;
+ status = "okay";
+};
+
+&hsotg {
+ status = "okay";
+ vusb_core-supply = <&safeout_reg>;
+ vusb_d-supply = <&ldo6_reg>;
+ vusb_a-supply = <&ldo8_reg>;
+};
+
+&i2c_0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ samsung,i2c-sda-delay = <100>;
+ samsung,i2c-slave-addr = <0x10>;
+ samsung,i2c-max-bus-freq = <100000>;
+ status = "okay";
+
+ s2mps14_pmic@66 {
+ compatible = "samsung,s2mps14-pmic";
+ interrupt-parent = <&gpx0>;
+ interrupts = <7 0>;
+ reg = <0x66>;
+
+ wakeup;
+
+ s2mps14_osc: clocks {
+ compatible = "samsung,s2mps14-clk";
+ #clock-cells = <1>;
+ clock-output-names = "s2mps14_ap", "unused",
+ "s2mps14_bt";
+ };
+
+ regulators {
+ ldo1_reg: LDO1 {
+ regulator-name = "VAP_ALIVE_1.0V";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ ldo2_reg: LDO2 {
+ regulator-name = "VAP_M1_1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo3_reg: LDO3 {
+ regulator-name = "VCC_AP_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo4_reg: LDO4 {
+ regulator-name = "VAP_AVDD_PLL1";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Standby Mode */
+ };
+
+ ldo5_reg: LDO5 {
+ regulator-name = "VAP_PLL_ISO_1.0V";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo6_reg: LDO6 {
+ regulator-name = "VAP_VMIPI_1.0V";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo7_reg: LDO7 {
+ regulator-name = "VAP_AVDD_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo8_reg: LDO8 {
+ regulator-name = "VAP_USB_3.0V";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Standby Mode */
+ };
+
+ ldo9_reg: LDO9 {
+ regulator-name = "V_LPDDR_1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ ldo10_reg: LDO10 {
+ regulator-name = "UNUSED_LDO10";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo11_reg: LDO11 {
+ regulator-name = "V_EMMC_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ ldo12_reg: LDO12 {
+ regulator-name = "V_EMMC_2.8V";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ ldo13_reg: LDO13 {
+ regulator-name = "CAM_AVDD_2.8V";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo14_reg: LDO14 {
+ regulator-name = "UNUSED_LDO14";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <2700000>;
+ regulator-boot-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo15_reg: LDO15 {
+ regulator-name = "TSP_AVDD_3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo16_reg: LDO16 {
+ regulator-name = "LCD_VDD_3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo17_reg: LDO17 {
+ regulator-name = "V_IRLED_3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo18_reg: LDO18 {
+ regulator-name = "CAM_AF_2.8V";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo19_reg: LDO19 {
+ regulator-name = "TSP_VDD_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo20_reg: LDO20 {
+ regulator-name = "LCD_VDD_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo21_reg: LDO21 {
+ regulator-name = "CAM_IO_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo22_reg: LDO22 {
+ regulator-name = "CAM_DVDD_1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo23_reg: LDO23 {
+ regulator-name = "HRM_VCC_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ ldo24_reg: LDO24 {
+ regulator-name = "HRM_VCC_3.3V";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ ldo25_reg: LDO25 {
+ regulator-name = "UNUSED_LDO25";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ buck1_reg: BUCK1 {
+ regulator-name = "VAP_MIF_1.0V";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <900000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ buck2_reg: BUCK2 {
+ regulator-name = "VAP_ARM_1.0V";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <1150000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ buck3_reg: BUCK3 {
+ regulator-name = "VAP_INT3D_1.0V";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-always-on;
+
+ op_mode = <3>; /* Standby Mode */
+ };
+
+ buck4_reg: BUCK4 {
+ regulator-name = "VCC_SUB_1.95V";
+ regulator-min-microvolt = <1950000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+
+ buck5_reg: BUCK5 {
+ regulator-name = "VCC_SUB_1.35V";
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+
+ op_mode = <1>; /* Normal Mode */
+ };
+ };
+ };
+};
+
+&i2c_1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ samsung,i2c-sda-delay = <100>;
+ samsung,i2c-slave-addr = <0x10>;
+ samsung,i2c-max-bus-freq = <400000>;
+ status = "okay";
+
+ fuel-gauge@36 {
+ compatible = "maxim,max77836-battery";
+ reg = <0x36>;
+ interrupt-parent = <&gpx1>;
+ interrupts = <2 8>;
+ };
+};
+
+&i2c_2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ samsung,i2c-sda-delay = <100>;
+ samsung,i2c-slave-addr = <0x10>;
+ samsung,i2c-max-bus-freq = <400000>;
+ status = "okay";
+
+ touchscreen-mms128@48 {
+ compatible = "melfas,mms128";
+ reg = <0x48>;
+ interrupt-parent = <&gpx3>;
+ interrupts = <5 2>;
+ max_x = <320>;
+ max_y = <320>;
+ invert_x = <0>;
+ invert_y = <0>;
+ gpios = <&gpx3 5 2>,
+ <&gpa0 6 0>,
+ <&gpa0 7 0>;
+ tsp_vendor = "MELFAS";
+ tsp_ic = "MMS128S";
+ tsp_tx = <7>;
+ tsp_rx = <7>;
+ tsp_avdd_3.3v-supply = <&ldo15_reg>;
+ tsp_vdd_1.8v-supply = <&ldo19_reg>;
+ };
+};
+
+&i2s2 {
+ status = "okay";
+};
+
+&rtc {
+ clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
+ clock-names = "rtc", "rtc_src_clk";
+ status = "okay";
+};
+
+&serial_0 {
+ assigned-clocks = <&cmu CLK_SCLK_UART0>;
+ assigned-clock-rates = <100000000>;
+ status = "okay";
+};
+
+&serial_1 {
+ status = "okay";
+};
+
+&spi_0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_bus>;
+ status = "okay";
+ spi-cpha;
+
+ shub_spi: shub {
+ compatible = "samsung,ssp-spi";
+ spi-max-frequency = <5000000>;
+ interrupt-parent = <&gpx0>;
+ interrupts = <2 0>;
+ ap-mcu-int = <&gpx0 0 0>;
+ mcu-ap-int1 = <&gpx0 2 0>;
+ mcu-ap-int2 = <&gpx0 4 0>;
+ mcu-reset = <&gpx0 5 0>;
+ reg = <0>;
+ controller-data {
+ cs-gpio = <&gpb 1 0>;
+ samsung,spi-feedback-dealy = <0>;
+ };
+ };
+};
+
+&spi_1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cs-gpio;
+ status = "okay";
+
+ ymu831: audio-codec@0 {
+ compatible = "yamaha,ymu831";
+ spi-max-frequency = <10000000>;
+ interrupt-parent = <&gpx1>;
+ interrupts = <4 0>;
+ reg = <0x0>;
+ codec-en-gpios = <&gpx3 6 0>;
+ controller-data {
+ cs-gpio = <&gpb 5 0>;
+ samsung,spi-feedback-delay = <2>;
+ };
+ };
+};
+
+&sysmmu_fimd0 {
+ status = "okay";
+};
+
+&mshc_0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ num-slots = <1>;
+ broken-cd;
+ non-removable;
+ supports-highspeed;
+ desc-num = <1>;
+ card-detect-delay = <200>;
+ vmmc-supply = <&vemmc_reg>;
+ clock-frequency = <400000000>;
+ clock-freq-min-max = <400000 100000000>;
+ samsung,dw-mshc-ciu-div = <3>;
+ samsung,dw-mshc-sdr-timing = <2 3>;
+ samsung,dw-mshc-ddr-timing = <1 2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+ status = "okay";
+
+ slot@0 {
+ reg = <0>;
+ bus-width = <8>;
+ };
+};
+
+&xusbxti {
+ clock-frequency = <24000000>;
+};
+
+&pinctrl_0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&initial0 &sleep0>;
+
+ initial0: initial-state {
+ PIN_IN(gpa1-0, DOWN, LV1); /* NC */
+ PIN_IN(gpa1-1, DOWN, LV1); /* NC */
+ PIN_IN(gpa1-2, DOWN, LV1); /* FPGA_SPI_SI */
+ PIN_IN(gpa1-3, DOWN, LV1); /* FPGA_SPI_CLK */
+ PIN_IN(gpa1-4, DOWN, LV1); /* NC */
+ PIN_IN(gpa1-5, DOWN, LV1); /* NC */
+
+ PIN_IN(gpc0-0, DOWN, LV1); /* NC */
+ PIN_IN(gpc0-1, DOWN, LV1); /* NC */
+ PIN_IN(gpc0-2, DOWN, LV1); /* NC */
+ PIN_IN(gpc0-3, DOWN, LV1); /* NC */
+ PIN_IN(gpc0-4, DOWN, LV1); /* NC */
+
+ PIN_IN(gpd0-0, DOWN, LV1); /* NC */
+ PIN_IN(gpd0-1, DOWN, LV1); /* NC */
+ };
+
+ sleep0: sleep-state {
+ PIN_SLP(gpa0-0, INPUT, DOWN); /* BT_UART_RXD */
+ PIN_SLP(gpa0-1, INPUT, DOWN); /* BT_UART_TXD */
+ PIN_SLP(gpa0-2, INPUT, DOWN); /* BT_UART_CTS */
+ PIN_SLP(gpa0-3, INPUT, DOWN); /* BT_UART_RTS */
+ PIN_SLP(gpa0-4, INPUT, DOWN); /* AP_RXD */
+ PIN_SLP(gpa0-5, INPUT, DOWN); /* AP_TXD */
+ PIN_SLP(gpa0-6, INPUT, DOWN); /* TSP_SDA */
+ PIN_SLP(gpa0-7, INPUT, DOWN); /* TSP_SCL */
+
+ PIN_SLP(gpa1-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpa1-1, INPUT, DOWN); /* FPGA_SPI_SI */
+ PIN_SLP(gpa1-2, INPUT, DOWN); /* FPGA_SPI_CLK */
+ PIN_SLP(gpa1-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpa1-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpa1-5, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpb-0, PREV, NONE); /* SHUB_SPI_SCK */
+ PIN_SLP(gpb-1, PREV, NONE); /* SHUB_SPI_SSN */
+ PIN_SLP(gpb-2, PREV, NONE); /* SHUB_SPI_MISO */
+ PIN_SLP(gpb-3, PREV, NONE); /* SHUB_SPI_MOSI */
+ PIN_SLP(gpb-4, INPUT, DOWN); /* CODEC_SPI_SCK */
+ PIN_SLP(gpb-5, INPUT, DOWN); /* CODEC_SPI_SSN */
+ PIN_SLP(gpb-6, INPUT, DOWN); /* CODEC_SPI_MISO */
+ PIN_SLP(gpb-7, INPUT, DOWN); /* CODEC_SPI_MOSI */
+
+ PIN_SLP(gpc0-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpc0-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpc0-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpc0-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpc0-4, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpc1-0, INPUT, DOWN); /* MM_I2S_CLK */
+ PIN_SLP(gpc1-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpc1-2, INPUT, DOWN); /* MM_I2S_SYNC */
+ PIN_SLP(gpc1-3, INPUT, DOWN); /* MM_I2S_DI */
+ PIN_SLP(gpc1-4, INPUT, DOWN); /* MM_I2S_DO */
+
+ PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpd0-2, INPUT, NONE); /* MUIC_SDA */
+ PIN_SLP(gpd0-3, INPUT, NONE); /* MUIC_SCL */
+
+ PIN_SLP(gpd1-0, INPUT, NONE); /* AP_PMIC_SDA */
+ PIN_SLP(gpd1-1, INPUT, NONE); /* AP_PMIC_SCL */
+ PIN_SLP(gpd1-2, INPUT, NONE); /* FUEL_SCL */
+ PIN_SLP(gpd1-3, INPUT, NONE); /* FUEL_SDA */
+ };
+};
+
+&pinctrl_1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&initial1 &sleep1>;
+
+ initial1: initial-state {
+ PIN_IN(gpe0-2, DOWN, LV4); /* NC */
+ PIN_IN(gpe0-3, DOWN, LV4); /* NC */
+ PIN_IN(gpe0-5, DOWN, LV4); /* NC */
+ PIN_IN(gpe0-6, DOWN, LV4); /* FPGA_SPI_EN */
+ PIN_IN(gpe0-7, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-0, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-2, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-3, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-4, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-5, DOWN, LV4); /* NC */
+ PIN_IN(gpe1-6, DOWN, LV4); /* NC */
+
+ PIN_IN(gpk0-7, DOWN, LV4); /* NC */
+ PIN_IN(gpk1-0, DOWN, LV4); /* WLAN_SDIO_CLK */
+ PIN_IN(gpk1-1, DOWN, LV4); /* WLAN_SDIO_CMD */
+ PIN_IN(gpk1-2, DOWN, LV4); /* NC */
+ PIN_IN(gpk1-3, DOWN, LV4); /* WLAN_SDIO_D1 */
+ PIN_IN(gpk1-4, DOWN, LV4); /* WLAN_SDIO_D2 */
+ PIN_IN(gpk1-5, DOWN, LV4); /* WLAN_SDIO_D3 */
+ PIN_IN(gpk1-6, DOWN, LV4); /* WLAN_SDIO_D4 */
+ PIN_IN(gpk2-0, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-1, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-2, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-3, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-4, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-5, DOWN, LV4); /* NC */
+ PIN_IN(gpk2-6, DOWN, LV4); /* NC */
+
+ PIN_IN(gpm0-0, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-1, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-2, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-3, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-4, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-5, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-6, DOWN, LV4); /* NC */
+ PIN_IN(gpm0-7, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-0, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-1, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-2, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-3, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-4, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-5, DOWN, LV4); /* NC */
+ PIN_IN(gpm1-6, DOWN, LV4); /* NC */
+ PIN_IN(gpm2-0, DOWN, LV4); /* NC */
+ PIN_IN(gpm2-1, DOWN, LV4); /* NC */
+ PIN_IN(gpm2-4, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-0, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-1, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-2, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-3, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-4, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-5, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-6, DOWN, LV4); /* NC */
+ PIN_IN(gpm3-7, DOWN, LV4); /* NC */
+ PIN_IN(gpm4-2, DOWN, LV4); /* AF_SCL */
+ PIN_IN(gpm4-3, DOWN, LV4); /* AF_SDA */
+ PIN_IN(gpm4-4, DOWN, LV4); /* NC */
+ PIN_IN(gpm4-5, DOWN, LV4); /* NC */
+ PIN_IN(gpm4-6, DOWN, LV4); /* NC */
+ PIN_IN(gpm4-7, DOWN, LV4); /* NC */
+ };
+
+ sleep1: sleep-state {
+ PIN_SLP(gpe0-0, PREV, NONE); /* BT_EN */
+ PIN_SLP(gpe0-1, PREV, NONE); /* DISP_RST */
+ PIN_SLP(gpe0-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe0-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe0-4, INPUT, DOWN); /* WLAN_EN */
+ PIN_SLP(gpe0-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe0-6, INPUT, DOWN); /* FPGA_SPI_EN */
+ PIN_SLP(gpe0-7, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpe1-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-1, PREV, NONE); /* WRSTBI */
+ PIN_SLP(gpe1-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-6, INPUT, DOWN); /* NC */
+ PIN_SLP(gpe1-7, INPUT, NONE); /* HW_REV0 */
+
+ PIN_SLP(gpe2-0, INPUT, NONE); /* HW_REV1 */
+ PIN_SLP(gpe2-1, INPUT, NONE); /* HW_REV2 */
+ PIN_SLP(gpe2-2, INPUT, NONE); /* HW_REV3 */
+
+ PIN_SLP(gpk0-0, INPUT, DOWN); /* NAND_CLK */
+ PIN_SLP(gpk0-1, INPUT, DOWN); /* NAND_CMD */
+ PIN_SLP(gpk0-2, OUT0, NONE); /* eMMC_EN */
+ PIN_SLP(gpk0-3, INPUT, DOWN); /* NAND_D0 */
+ PIN_SLP(gpk0-4, INPUT, DOWN); /* NAND_D1 */
+ PIN_SLP(gpk0-5, INPUT, DOWN); /* NAND_D2 */
+ PIN_SLP(gpk0-6, INPUT, DOWN); /* NAND_D3 */
+ PIN_SLP(gpk0-7, INPUT, DOWN); /* 10K PD */
+
+ PIN_SLP(gpk1-0, INPUT, DOWN); /* WLAN_SDIO_CLK */
+ PIN_SLP(gpk1-1, INPUT, DOWN); /* WLAN_SDIO_CMD */
+ PIN_SLP(gpk1-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk1-3, INPUT, DOWN); /* WLAN_SDIO_D1 */
+ PIN_SLP(gpk1-4, INPUT, DOWN); /* WLAN_SDIO_D2 */
+ PIN_SLP(gpk1-5, INPUT, DOWN); /* WLAN_SDIO_D3 */
+ PIN_SLP(gpk1-6, INPUT, DOWN); /* WLAN_SDIO_D4 */
+
+ PIN_SLP(gpk2-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpk2-6, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpl0-0, INPUT, DOWN); /* NAND_D4 */
+ PIN_SLP(gpl0-1, INPUT, DOWN); /* NAND_D5 */
+ PIN_SLP(gpl0-2, INPUT, DOWN); /* NAND_D6 */
+ PIN_SLP(gpl0-3, INPUT, DOWN); /* NAND_D7 */
+
+ PIN_SLP(gpm0-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-6, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm0-7, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpm1-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm1-6, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpm2-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm2-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm2-2, INPUT, DOWN); /* CAM_MCLK */
+ PIN_SLP(gpm2-3, INPUT, DOWN); /* CAM_nRST */
+ PIN_SLP(gpm2-4, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpm3-0, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-1, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-2, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-3, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-6, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm3-7, INPUT, DOWN); /* NC */
+
+ PIN_SLP(gpm4-0, INPUT, DOWN); /* CAM_SCL */
+ PIN_SLP(gpm4-1, INPUT, DOWN); /* CAM_SDA */
+ PIN_SLP(gpm4-2, INPUT, DOWN); /* AF_SCL */
+ PIN_SLP(gpm4-3, INPUT, DOWN); /* AF_SDA */
+ PIN_SLP(gpm4-4, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm4-5, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm4-6, INPUT, DOWN); /* NC */
+ PIN_SLP(gpm4-7, INPUT, DOWN); /* NC */
+ };
+};