Commit 127e0ee0 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'samsung-dt64-4.11' of...

Merge tag 'samsung-dt64-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt64

Samsung DeviceTree ARM64 update for v4.11:
1. Add bus frequency and voltage scalling on Exynos5433 TM2 device (along with
   necessary bus nodes and Platform Performance Monitoring Unit on Exynos5433).
2. Use macros for pinctrl settings on Exynos5433.
   This contains necessary header with bindings.
3. Minor cleanups in Exynos5433 DTSI and boards using it.
4. Create common DTSI betweem Exynos5433 TM2E and TM2E.
5. Add HDMI/TV to Exynos5433 TM2.

* tag 'samsung-dt64-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: Enable HDMI/TV path on Exynos5433-TM2
  arm64: dts: exynos: Add HDMI node to Exynos5433
  arm64: dts: exynos: Add DECON_TV node to Exynos5433
  arm64: dts: exynos: Fix addresses in node names on Exynos5433
  arm64: dts: exynos: Make TM2 and TM2E independent from each other
  arm64: dts: exynos: Fix wrong values for ldo23 and ldo25 on TM2/TM2E
  arm64: dts: exynos: Remove unsupported regulator-always-off property from TM2E
  arm64: dts: exynos: Comply to the samsung pinctrl naming convention in TM2
  arm64: dts: exynos: Use macros for pinctrl configuration on Exynos5433
  pinctrl: dt-bindings: samsung: add drive strength macros for Exynos5433
  arm64: dts: exynos: Add support of bus frequency using VDD_INT on Exynos5433 TM2
  arm64: dts: exynos: Add bus nodes using VDD_INT for Exynos5433
  arm64: dts: exynos: Add PPMU node to Exynos5433
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 7a7b1978 e4e38113
/*
* Samsung's Exynos5433 SoC Memory interface and AMBA bus device tree source
*
* Copyright (c) 2016 Samsung Electronics Co., Ltd.
* Chanwoo Choi <cw00.choi@samsung.com>
*
* 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.
*/
&soc {
bus_g2d_400: bus0 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_G2D_400>;
clock-names = "bus";
operating-points-v2 = <&bus_g2d_400_opp_table>;
status = "disabled";
};
bus_g2d_266: bus1 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_G2D_266>;
clock-names = "bus";
operating-points-v2 = <&bus_g2d_266_opp_table>;
status = "disabled";
};
bus_gscl: bus2 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_GSCL_333>;
clock-names = "bus";
operating-points-v2 = <&bus_gscl_opp_table>;
status = "disabled";
};
bus_hevc: bus3 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_HEVC_400>;
clock-names = "bus";
operating-points-v2 = <&bus_hevc_opp_table>;
status = "disabled";
};
bus_jpeg: bus4 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_SCLK_JPEG_MSCL>;
clock-names = "bus";
operating-points-v2 = <&bus_g2d_400_opp_table>;
status = "disabled";
};
bus_mfc: bus5 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_MFC_400>;
clock-names = "bus";
operating-points-v2 = <&bus_g2d_400_opp_table>;
status = "disabled";
};
bus_mscl: bus6 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_MSCL_400>;
clock-names = "bus";
operating-points-v2 = <&bus_g2d_400_opp_table>;
status = "disabled";
};
bus_noc0: bus7 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_BUS0_400>;
clock-names = "bus";
operating-points-v2 = <&bus_hevc_opp_table>;
status = "disabled";
};
bus_noc1: bus8 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_top CLK_ACLK_BUS1_400>;
clock-names = "bus";
operating-points-v2 = <&bus_hevc_opp_table>;
status = "disabled";
};
bus_noc2: bus9 {
compatible = "samsung,exynos-bus";
clocks = <&cmu_mif CLK_ACLK_BUS2_400>;
clock-names = "bus";
operating-points-v2 = <&bus_noc2_opp_table>;
status = "disabled";
};
bus_g2d_400_opp_table: opp_table2 {
compatible = "operating-points-v2";
opp-shared;
opp@400000000 {
opp-hz = /bits/ 64 <400000000>;
opp-microvolt = <1075000>;
};
opp@267000000 {
opp-hz = /bits/ 64 <267000000>;
opp-microvolt = <1000000>;
};
opp@200000000 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <975000>;
};
opp@160000000 {
opp-hz = /bits/ 64 <160000000>;
opp-microvolt = <962500>;
};
opp@134000000 {
opp-hz = /bits/ 64 <134000000>;
opp-microvolt = <950000>;
};
opp@100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <937500>;
};
};
bus_g2d_266_opp_table: opp_table3 {
compatible = "operating-points-v2";
opp@267000000 {
opp-hz = /bits/ 64 <267000000>;
};
opp@200000000 {
opp-hz = /bits/ 64 <200000000>;
};
opp@160000000 {
opp-hz = /bits/ 64 <160000000>;
};
opp@134000000 {
opp-hz = /bits/ 64 <134000000>;
};
opp@100000000 {
opp-hz = /bits/ 64 <100000000>;
};
};
bus_gscl_opp_table: opp_table4 {
compatible = "operating-points-v2";
opp@333000000 {
opp-hz = /bits/ 64 <333000000>;
};
opp@222000000 {
opp-hz = /bits/ 64 <222000000>;
};
opp@166500000 {
opp-hz = /bits/ 64 <166500000>;
};
};
bus_hevc_opp_table: opp_table5 {
compatible = "operating-points-v2";
opp-shared;
opp@400000000 {
opp-hz = /bits/ 64 <400000000>;
};
opp@267000000 {
opp-hz = /bits/ 64 <267000000>;
};
opp@200000000 {
opp-hz = /bits/ 64 <200000000>;
};
opp@160000000 {
opp-hz = /bits/ 64 <160000000>;
};
opp@134000000 {
opp-hz = /bits/ 64 <134000000>;
};
opp@100000000 {
opp-hz = /bits/ 64 <100000000>;
};
};
bus_noc2_opp_table: opp_table6 {
compatible = "operating-points-v2";
opp@400000000 {
opp-hz = /bits/ 64 <400000000>;
};
opp@200000000 {
opp-hz = /bits/ 64 <200000000>;
};
opp@134000000 {
opp-hz = /bits/ 64 <134000000>;
};
opp@100000000 {
opp-hz = /bits/ 64 <100000000>;
};
};
};
......@@ -12,25 +12,14 @@
* 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_IN 0
#define PIN_OUT 1
#define PIN_FUNC1 2
#define PIN(_func, _pin, _pull, _drv) \
_pin { \
samsung,pins = #_pin; \
samsung,pin-function = <PIN_ ##_func>; \
samsung,pin-pud = <PIN_PULL_ ##_pull>; \
samsung,pin-drv = <PIN_DRV_ ##_drv>; \
#include <dt-bindings/pinctrl/samsung.h>
#define PIN(_func, _pin, _pull, _drv) \
_pin { \
samsung,pins = #_pin; \
samsung,pin-function = <EXYNOS_PIN_FUNC_ ##_func>; \
samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>; \
samsung,pin-drv = <EXYNOS5433_PIN_DRV_ ##_drv>; \
}
&pinctrl_alive {
......@@ -145,23 +134,23 @@ gpz1: gpz1 {
i2s0_bus: i2s0-bus {
samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3",
"gpz0-4", "gpz0-5", "gpz0-6";
samsung,pin-function = <2>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pcm0_bus: pcm0-bus {
samsung,pins = "gpz1-0", "gpz1-1", "gpz1-2", "gpz1-3";
samsung,pin-function = <3>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
uart_aud_bus: uart-aud-bus {
samsung,pins = "gpz1-3", "gpz1-2", "gpz1-1", "gpz1-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
};
......@@ -196,16 +185,16 @@ gpd5: gpd5 {
spi2_bus: spi2-bus {
samsung,pins = "gpd5-0", "gpd5-2", "gpd5-3";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c6_bus: hs-i2c6-bus {
samsung,pins = "gpd5-3", "gpd5-2";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
};
......@@ -260,141 +249,141 @@ gpr3: gpr3 {
sd0_clk: sd0-clk {
samsung,pins = "gpr0-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_cmd: sd0-cmd {
samsung,pins = "gpr0-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_rdqs: sd0-rdqs {
samsung,pins = "gpr0-2";
samsung,pin-function = <2>;
samsung,pin-pud = <1>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_qrdy: sd0-qrdy {
samsung,pins = "gpr0-3";
samsung,pin-function = <2>;
samsung,pin-pud = <1>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_bus1: sd0-bus-width1 {
samsung,pins = "gpr1-0";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_bus4: sd0-bus-width4 {
samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd0_bus8: sd0-bus-width8 {
samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd1_clk: sd1-clk {
samsung,pins = "gpr2-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd1_cmd: sd1-cmd {
samsung,pins = "gpr2-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd1_bus1: sd1-bus-width1 {
samsung,pins = "gpr3-0";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd1_bus4: sd1-bus-width4 {
samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd1_bus8: sd1-bus-width8 {
samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
pcie_bus: pcie_bus {
samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7";
samsung,pin-function = <3>;
samsung,pin-pud = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
};
sd2_clk: sd2-clk {
samsung,pins = "gpr4-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd2_cmd: sd2-cmd {
samsung,pins = "gpr4-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd2_cd: sd2-cd {
samsung,pins = "gpr4-2";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd2_bus1: sd2-bus-width1 {
samsung,pins = "gpr4-3";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd2_bus4: sd2-bus-width4 {
samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <3>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR4>;
};
sd2_clk_output: sd2-clk-output {
samsung,pins = "gpr4-0";
samsung,pin-function = <1>;
samsung,pin-pud = <0>;
samsung,pin-drv = <2>;
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR3>;
};
sd2_cmd_output: sd2-cmd-output {
samsung,pins = "gpr4-1";
samsung,pin-function = <1>;
samsung,pin-pud = <0>;
samsung,pin-drv = <2>;
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR3>;
};
};
......@@ -419,9 +408,9 @@ gpj0: gpj0 {
hs_i2c4_bus: hs-i2c4-bus {
samsung,pins = "gpj0-1", "gpj0-0";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
};
......@@ -564,225 +553,225 @@ gpg3: gpg3 {
hs_i2c8_bus: hs-i2c8-bus {
samsung,pins = "gpb0-1", "gpb0-0";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c9_bus: hs-i2c9-bus {
samsung,pins = "gpb0-3", "gpb0-2";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
i2s1_bus: i2s1-bus {
samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2",
"gpd4-3", "gpd4-4";
samsung,pin-function = <2>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pcm1_bus: pcm1-bus {
samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2",
"gpd4-3", "gpd4-4";
samsung,pin-function = <3>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
spdif_bus: spdif-bus {
samsung,pins = "gpd4-3", "gpd4-4";
samsung,pin-function = <4>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_spi_pin0: fimc-is-spi-pin0 {
samsung,pins = "gpc3-3", "gpc3-2", "gpc3-1", "gpc3-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_spi_pin1: fimc-is-spi-pin1 {
samsung,pins = "gpc3-7", "gpc3-6", "gpc3-5", "gpc3-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
uart0_bus: uart0-bus {
samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
};
hs_i2c2_bus: hs-i2c2-bus {
samsung,pins = "gpd0-3", "gpd0-2";
samsung,pin-function = <3>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
uart2_bus: uart2-bus {
samsung,pins = "gpd1-5", "gpd1-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
};
uart1_bus: uart1-bus {
samsung,pins = "gpd1-3", "gpd1-2", "gpd1-1", "gpd1-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
};
hs_i2c3_bus: hs-i2c3-bus {
samsung,pins = "gpd1-3", "gpd1-2";
samsung,pin-function = <3>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c0_bus: hs-i2c0-bus {
samsung,pins = "gpd2-1", "gpd2-0";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c1_bus: hs-i2c1-bus {
samsung,pins = "gpd2-3", "gpd2-2";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pwm0_out: pwm0-out {
samsung,pins = "gpd2-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pwm1_out: pwm1-out {
samsung,pins = "gpd2-5";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pwm2_out: pwm2-out {
samsung,pins = "gpd2-6";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
pwm3_out: pwm3-out {
samsung,pins = "gpd2-7";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
spi1_bus: spi1-bus {
samsung,pins = "gpd6-2", "gpd6-4", "gpd6-5";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c7_bus: hs-i2c7-bus {
samsung,pins = "gpd2-7", "gpd2-6";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
spi0_bus: spi0-bus {
samsung,pins = "gpd8-0", "gpd6-0", "gpd6-1";
samsung,pin-function = <2>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c10_bus: hs-i2c10-bus {
samsung,pins = "gpg3-1", "gpg3-0";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
hs_i2c11_bus: hs-i2c11-bus {
samsung,pins = "gpg3-3", "gpg3-2";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
spi3_bus: spi3-bus {
samsung,pins = "gpg3-4", "gpg3-6", "gpg3-7";
samsung,pin-function = <3>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
spi4_bus: spi4-bus {
samsung,pins = "gpv7-1", "gpv7-3", "gpv7-4";
samsung,pin-function = <3>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_uart: fimc-is-uart {
samsung,pins = "gpc1-1", "gpc0-7";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch0_i2c: fimc-is-ch0_i2c {
samsung,pins = "gpc2-1", "gpc2-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch0_mclk: fimc-is-ch0_mclk {
samsung,pins = "gpd7-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch1_i2c: fimc-is-ch1-i2c {
samsung,pins = "gpc2-3", "gpc2-2";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch1_mclk: fimc-is-ch1-mclk {
samsung,pins = "gpd7-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch2_i2c: fimc-is-ch2-i2c {
samsung,pins = "gpc2-5", "gpc2-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
fimc_is_ch2_mclk: fimc-is-ch2-mclk {
samsung,pins = "gpd7-2";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
};
......@@ -797,8 +786,8 @@ gpj1: gpj1 {
hs_i2c5_bus: hs-i2c5-bus {
samsung,pins = "gpj1-1", "gpj1-0";
samsung,pin-function = <4>;
samsung,pin-pud = <3>;
samsung,pin-drv = <0>;
samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
};
};
/*
* SAMSUNG Exynos5433 TM2 board device tree source
*
* Copyright (c) 2016 Samsung Electronics Co., Ltd.
*
* Common device tree source file for Samsung's TM2 and TM2E boards
* which are based on Samsung Exynos5433 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 "exynos5433.dtsi"
#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
aliases {
gsc0 = &gsc_0;
gsc1 = &gsc_1;
gsc2 = &gsc_2;
pinctrl0 = &pinctrl_alive;
pinctrl1 = &pinctrl_aud;
pinctrl2 = &pinctrl_cpif;
pinctrl3 = &pinctrl_ese;
pinctrl4 = &pinctrl_finger;
pinctrl5 = &pinctrl_fsys;
pinctrl6 = &pinctrl_imem;
pinctrl7 = &pinctrl_nfc;
pinctrl8 = &pinctrl_peric;
pinctrl9 = &pinctrl_touch;
serial0 = &serial_0;
serial1 = &serial_1;
serial2 = &serial_2;
serial3 = &serial_3;
spi0 = &spi_0;
spi1 = &spi_1;
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
mshc0 = &mshc_0;
mshc2 = &mshc_2;
};
chosen {
stdout-path = &serial_1;
};
memory@20000000 {
device_type = "memory";
reg = <0x0 0x20000000 0x0 0xc0000000>;
};
gpio-keys {
compatible = "gpio-keys";
power-key {
gpios = <&gpa2 7 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
label = "power key";
debounce-interval = <10>;
};
volume-up-key {
gpios = <&gpa2 0 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
label = "volume-up key";
debounce-interval = <10>;
};
volume-down-key {
gpios = <&gpa2 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
label = "volume-down key";
debounce-interval = <10>;
};
homepage-key {
gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_MENU>;
label = "homepage key";
debounce-interval = <10>;
};
};
i2c_max98504: i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&gpd0 1 GPIO_ACTIVE_HIGH /* SPK_AMP_SDA */
&gpd0 0 GPIO_ACTIVE_HIGH /* SPK_AMP_SCL */ >;
i2c-gpio,delay-us = <2>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
max98504: max98504@31 {
compatible = "maxim,max98504";
reg = <0x31>;
maxim,rx-path = <1>;
maxim,tx-path = <1>;
maxim,tx-channel-mask = <3>;
maxim,tx-channel-source = <2>;
};
};
sound {
compatible = "samsung,tm2-audio";
audio-codec = <&wm5110>;
i2s-controller = <&i2s0>;
audio-amplifier = <&max98504>;
mic-bias-gpios = <&gpr3 2 GPIO_ACTIVE_HIGH>;
model = "wm5110";
samsung,audio-routing =
/* Headphone */
"HP", "HPOUT1L",
"HP", "HPOUT1R",
/* Speaker */
"SPK", "SPKOUT",
"SPKOUT", "HPOUT2L",
"SPKOUT", "HPOUT2R",
/* Receiver */
"RCV", "HPOUT3L",
"RCV", "HPOUT3R";
status = "okay";
};
};
&adc {
vdd-supply = <&ldo3_reg>;
status = "okay";
thermistor-ap {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 0>;
};
thermistor-battery {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 1>;
#thermal-sensor-cells = <0>;
};
thermistor-charger {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 2>;
};
};
&bus_g2d_400 {
devfreq-events = <&ppmu_event0_d0_general>, <&ppmu_event0_d1_general>;
vdd-supply = <&buck4_reg>;
exynos,saturation-ratio = <10>;
status = "okay";
};
&bus_g2d_266 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_gscl {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_hevc {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_jpeg {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_mfc {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_mscl {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc0 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc1 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&bus_noc2 {
devfreq = <&bus_g2d_400>;
status = "okay";
};
&cmu_aud {
assigned-clocks = <&cmu_aud CLK_MOUT_AUD_PLL_USER>;
assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>;
};
&cmu_fsys {
assigned-clocks = <&cmu_top CLK_MOUT_SCLK_USBDRD30>,
<&cmu_top CLK_MOUT_SCLK_USBHOST30>,
<&cmu_fsys CLK_MOUT_SCLK_USBDRD30_USER>,
<&cmu_fsys CLK_MOUT_SCLK_USBHOST30_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_USER>,
<&cmu_top CLK_DIV_SCLK_USBDRD30>,
<&cmu_top CLK_DIV_SCLK_USBHOST30>;
assigned-clock-parents = <&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_SCLK_USBDRD30_FSYS>,
<&cmu_top CLK_SCLK_USBHOST30_FSYS>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_PHY>;
assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>,
<66700000>, <66700000>;
};
&cmu_gscl {
assigned-clocks = <&cmu_gscl CLK_MOUT_ACLK_GSCL_111_USER>,
<&cmu_gscl CLK_MOUT_ACLK_GSCL_333_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_GSCL_111>,
<&cmu_top CLK_ACLK_GSCL_333>;
};
&cmu_mfc {
assigned-clocks = <&cmu_mfc CLK_MOUT_ACLK_MFC_400_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MFC_400>;
};
&cmu_mscl {
assigned-clocks = <&cmu_mscl CLK_MOUT_ACLK_MSCL_400_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG>,
<&cmu_top CLK_MOUT_SCLK_JPEG_A>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MSCL_400>,
<&cmu_top CLK_SCLK_JPEG_MSCL>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>;
};
&cpu0 {
cpu-supply = <&buck3_reg>;
};
&cpu4 {
cpu-supply = <&buck2_reg>;
};
&decon {
status = "okay";
i80-if-timings {
};
};
&decon_tv {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
tv_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_tv>;
};
};
};
};
&dsi {
status = "okay";
vddcore-supply = <&ldo6_reg>;
vddio-supply = <&ldo7_reg>;
samsung,pll-clock-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&te_irq>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
dsi_out: endpoint {
samsung,burst-clock-frequency = <512000000>;
samsung,esc-clock-frequency = <16000000>;
};
};
};
};
&hdmi {
hpd-gpios = <&gpa3 0 GPIO_ACTIVE_HIGH>;
status = "okay";
vdd-supply = <&ldo6_reg>;
vdd_osc-supply = <&ldo7_reg>;
vdd_pll-supply = <&ldo6_reg>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
hdmi_to_tv: endpoint {
remote-endpoint = <&tv_to_hdmi>;
};
};
port@1 {
reg = <1>;
hdmi_to_mhl: endpoint {
remote-endpoint = <&mhl_to_hdmi>;
};
};
};
};
&hsi2c_0 {
status = "okay";
clock-frequency = <2500000>;
s2mps13-pmic@66 {
compatible = "samsung,s2mps13-pmic";
interrupt-parent = <&gpa0>;
interrupts = <7 IRQ_TYPE_NONE>;
reg = <0x66>;
samsung,s2mps11-wrstbi-ground;
s2mps13_osc: clocks {
compatible = "samsung,s2mps13-clk";
#clock-cells = <1>;
clock-output-names = "s2mps13_ap", "s2mps13_cp",
"s2mps13_bt";
};
regulators {
ldo1_reg: LDO1 {
regulator-name = "VDD_ALIVE_0.9V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-always-on;
};
ldo2_reg: LDO2 {
regulator-name = "VDDQ_MMC2_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo3_reg: LDO3 {
regulator-name = "VDD1_E_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo4_reg: LDO4 {
regulator-name = "VDD10_MIF_PLL_1.0V_AP";
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo5_reg: LDO5 {
regulator-name = "VDD10_DPLL_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo6_reg: LDO6 {
regulator-name = "VDD10_MIPI2L_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo7_reg: LDO7 {
regulator-name = "VDD18_MIPI2L_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo8_reg: LDO8 {
regulator-name = "VDD18_LLI_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo9_reg: LDO9 {
regulator-name = "VDD18_ABB_ETC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo10_reg: LDO10 {
regulator-name = "VDD33_USB30_3.0V_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo11_reg: LDO11 {
regulator-name = "VDD_INT_M_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo12_reg: LDO12 {
regulator-name = "VDD_KFC_M_1.1V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
};
ldo13_reg: LDO13 {
regulator-name = "VDD_G3D_M_0.95V_AP";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo14_reg: LDO14 {
regulator-name = "VDDQ_M1_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo15_reg: LDO15 {
regulator-name = "VDDQ_M2_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo16_reg: LDO16 {
regulator-name = "VDDQ_EFUSE";
regulator-min-microvolt = <1400000>;
regulator-max-microvolt = <3400000>;
regulator-always-on;
};
ldo17_reg: LDO17 {
regulator-name = "V_TFLASH_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo18_reg: LDO18 {
regulator-name = "V_CODEC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo19_reg: LDO19 {
regulator-name = "VDDA_1.8V_COMP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo20_reg: LDO20 {
regulator-name = "VCC_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo21_reg: LDO21 {
regulator-name = "VT_CAM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo22_reg: LDO22 {
regulator-name = "CAM_IO_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo23_reg: LDO23 {
regulator-name = "CAM_SEN_CORE_1.05V_AP";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
};
ldo24_reg: LDO24 {
regulator-name = "VT_CAM_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
ldo25_reg: LDO25 {
regulator-name = "UNUSED_LDO25";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo26_reg: LDO26 {
regulator-name = "CAM_AF_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo27_reg: LDO27 {
regulator-name = "VCC_3.0V_LCD_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo28_reg: LDO28 {
regulator-name = "VCC_1.8V_LCD_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo29_reg: LDO29 {
regulator-name = "VT_CAM_2.8V";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo30_reg: LDO30 {
regulator-name = "TSP_AVDD_3.3V_AP";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo31_reg: LDO31 {
/*
* LDO31 differs from target to target,
* its definition is in the .dts
*/
};
ldo32_reg: LDO32 {
regulator-name = "VTOUCH_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo33_reg: LDO33 {
regulator-name = "VTOUCH_LED_3.3V";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12500>;
};
ldo34_reg: LDO34 {
regulator-name = "VCC_1.8V_MHL_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2100000>;
};
ldo35_reg: LDO35 {
regulator-name = "OIS_VM_2.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>;
};
ldo36_reg: LDO36 {
regulator-name = "VSIL_1.0V";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
};
ldo37_reg: LDO37 {
regulator-name = "VF_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo38_reg: LDO38 {
/*
* LDO38 differs from target to target,
* its definition is in the .dts
*/
};
ldo39_reg: LDO39 {
regulator-name = "V_HRM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo40_reg: LDO40 {
regulator-name = "V_HRM_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
buck1_reg: BUCK1 {
regulator-name = "VDD_MIF_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck2_reg: BUCK2 {
regulator-name = "VDD_EGL_1.0V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck3_reg: BUCK3 {
regulator-name = "VDD_KFC_1.0V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck4_reg: BUCK4 {
regulator-name = "VDD_INT_0.95V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck5_reg: BUCK5 {
regulator-name = "VDD_DISP_CAM0_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck6_reg: BUCK6 {
regulator-name = "VDD_G3D_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck7_reg: BUCK7 {
regulator-name = "VDD_MEM1_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
buck8_reg: BUCK8 {
regulator-name = "VDD_LLDO_1.35V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck9_reg: BUCK9 {
regulator-name = "VDD_MLDO_2.0V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck10_reg: BUCK10 {
regulator-name = "vdd_mem2";
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
};
};
};
};
&hsi2c_7 {
status = "okay";
sii8620@39 {
reg = <0x39>;
compatible = "sil,sii8620";
cvcc10-supply = <&ldo36_reg>;
iovcc18-supply = <&ldo34_reg>;
interrupt-parent = <&gpf0>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
reset-gpios = <&gpv7 0 GPIO_ACTIVE_LOW>;
clocks = <&pmu_system_controller 0>;
clock-names = "xtal";
port {
mhl_to_hdmi: endpoint {
remote-endpoint = <&hdmi_to_mhl>;
};
};
};
};
&hsi2c_8 {
status = "okay";
max77843@66 {
compatible = "maxim,max77843";
interrupt-parent = <&gpa1>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
reg = <0x66>;
muic: max77843-muic {
compatible = "maxim,max77843-muic";
};
regulators {
compatible = "maxim,max77843-regulator";
safeout1_reg: SAFEOUT1 {
regulator-name = "SAFEOUT1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
safeout2_reg: SAFEOUT2 {
regulator-name = "SAFEOUT2";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
charger_reg: CHARGER {
regulator-name = "CHARGER";
regulator-min-microamp = <100000>;
regulator-max-microamp = <3150000>;
};
};
haptic: max77843-haptic {
compatible = "maxim,max77843-haptic";
haptic-supply = <&ldo38_reg>;
pwms = <&pwm 0 33670 0>;
pwm-names = "haptic";
};
};
};
&hsi2c_11 {
status = "okay";
};
&i2s0 {
status = "okay";
};
&mshc_0 {
status = "okay";
num-slots = <1>;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
cap-mmc-highspeed;
non-removable;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
samsung,dw-mshc-hs400-timing = <0 3>;
samsung,read-strobe-delay = <90>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4
&sd0_bus8 &sd0_rdqs>;
bus-width = <8>;
assigned-clocks = <&cmu_top CLK_SCLK_MMC0_FSYS>;
assigned-clock-rates = <800000000>;
};
&mshc_2 {
status = "okay";
num-slots = <1>;
cap-sd-highspeed;
disable-wp;
cd-gpios = <&gpa2 4 GPIO_ACTIVE_HIGH>;
cd-inverted;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>;
bus-width = <4>;
};
&ppmu_d0_general {
status = "okay";
events {
ppmu_event0_d0_general: ppmu-event0-d0-general {
event-name = "ppmu-event0-d0-general";
};
};
};
&ppmu_d1_general {
status = "okay";
events {
ppmu_event0_d1_general: ppmu-event0-d1-general {
event-name = "ppmu-event0-d1-general";
};
};
};
&pinctrl_alive {
pinctrl-names = "default";
pinctrl-0 = <&initial_alive>;
initial_alive: initial-state {
PIN(INPUT, gpa0-0, DOWN, FAST_SR1);
PIN(INPUT, gpa0-1, NONE, FAST_SR1);
PIN(INPUT, gpa0-2, DOWN, FAST_SR1);
PIN(INPUT, gpa0-3, NONE, FAST_SR1);
PIN(INPUT, gpa0-4, NONE, FAST_SR1);
PIN(INPUT, gpa0-5, DOWN, FAST_SR1);
PIN(INPUT, gpa0-6, NONE, FAST_SR1);
PIN(INPUT, gpa0-7, NONE, FAST_SR1);
PIN(INPUT, gpa1-0, UP, FAST_SR1);
PIN(INPUT, gpa1-1, NONE, FAST_SR1);
PIN(INPUT, gpa1-2, NONE, FAST_SR1);
PIN(INPUT, gpa1-3, DOWN, FAST_SR1);
PIN(INPUT, gpa1-4, DOWN, FAST_SR1);
PIN(INPUT, gpa1-5, NONE, FAST_SR1);
PIN(INPUT, gpa1-6, NONE, FAST_SR1);
PIN(INPUT, gpa1-7, NONE, FAST_SR1);
PIN(INPUT, gpa2-0, NONE, FAST_SR1);
PIN(INPUT, gpa2-1, NONE, FAST_SR1);
PIN(INPUT, gpa2-2, NONE, FAST_SR1);
PIN(INPUT, gpa2-3, DOWN, FAST_SR1);
PIN(INPUT, gpa2-4, NONE, FAST_SR1);
PIN(INPUT, gpa2-5, DOWN, FAST_SR1);
PIN(INPUT, gpa2-6, DOWN, FAST_SR1);
PIN(INPUT, gpa2-7, NONE, FAST_SR1);
PIN(INPUT, gpa3-0, DOWN, FAST_SR1);
PIN(INPUT, gpa3-1, DOWN, FAST_SR1);
PIN(INPUT, gpa3-2, NONE, FAST_SR1);
PIN(INPUT, gpa3-3, DOWN, FAST_SR1);
PIN(INPUT, gpa3-4, NONE, FAST_SR1);
PIN(INPUT, gpa3-5, DOWN, FAST_SR1);
PIN(INPUT, gpa3-6, DOWN, FAST_SR1);
PIN(INPUT, gpa3-7, DOWN, FAST_SR1);
PIN(INPUT, gpf1-0, NONE, FAST_SR1);
PIN(INPUT, gpf1-1, NONE, FAST_SR1);
PIN(INPUT, gpf1-2, DOWN, FAST_SR1);
PIN(INPUT, gpf1-4, UP, FAST_SR1);
PIN(OUTPUT, gpf1-5, NONE, FAST_SR1);
PIN(INPUT, gpf1-6, DOWN, FAST_SR1);
PIN(INPUT, gpf1-7, DOWN, FAST_SR1);
PIN(INPUT, gpf2-0, DOWN, FAST_SR1);
PIN(INPUT, gpf2-1, DOWN, FAST_SR1);
PIN(INPUT, gpf2-2, DOWN, FAST_SR1);
PIN(INPUT, gpf2-3, DOWN, FAST_SR1);
PIN(INPUT, gpf3-0, DOWN, FAST_SR1);
PIN(INPUT, gpf3-1, DOWN, FAST_SR1);
PIN(INPUT, gpf3-2, NONE, FAST_SR1);
PIN(INPUT, gpf3-3, DOWN, FAST_SR1);
PIN(INPUT, gpf4-0, DOWN, FAST_SR1);
PIN(INPUT, gpf4-1, DOWN, FAST_SR1);
PIN(INPUT, gpf4-2, DOWN, FAST_SR1);
PIN(INPUT, gpf4-3, DOWN, FAST_SR1);
PIN(INPUT, gpf4-4, DOWN, FAST_SR1);
PIN(INPUT, gpf4-5, DOWN, FAST_SR1);
PIN(INPUT, gpf4-6, DOWN, FAST_SR1);
PIN(INPUT, gpf4-7, DOWN, FAST_SR1);
PIN(INPUT, gpf5-0, DOWN, FAST_SR1);
PIN(INPUT, gpf5-1, DOWN, FAST_SR1);
PIN(INPUT, gpf5-2, DOWN, FAST_SR1);
PIN(INPUT, gpf5-3, DOWN, FAST_SR1);
PIN(OUTPUT, gpf5-4, NONE, FAST_SR1);
PIN(INPUT, gpf5-5, DOWN, FAST_SR1);
PIN(INPUT, gpf5-6, DOWN, FAST_SR1);
PIN(INPUT, gpf5-7, DOWN, FAST_SR1);
};
te_irq: te_irq {
samsung,pins = "gpf1-3";
samsung,pin-function = <0xf>;
};
};
&pinctrl_cpif {
pinctrl-names = "default";
pinctrl-0 = <&initial_cpif>;
initial_cpif: initial-state {
PIN(INPUT, gpv6-0, DOWN, FAST_SR1);
PIN(INPUT, gpv6-1, DOWN, FAST_SR1);
};
};
&pinctrl_ese {
pinctrl-names = "default";
pinctrl-0 = <&initial_ese>;
initial_ese: initial-state {
PIN(INPUT, gpj2-0, DOWN, FAST_SR1);
PIN(INPUT, gpj2-1, DOWN, FAST_SR1);
PIN(INPUT, gpj2-2, DOWN, FAST_SR1);
};
};
&pinctrl_fsys {
pinctrl-names = "default";
pinctrl-0 = <&initial_fsys>;
initial_fsys: initial-state {
PIN(INPUT, gpr3-0, NONE, FAST_SR1);
PIN(INPUT, gpr3-1, DOWN, FAST_SR1);
PIN(INPUT, gpr3-2, DOWN, FAST_SR1);
PIN(INPUT, gpr3-3, DOWN, FAST_SR1);
PIN(INPUT, gpr3-7, NONE, FAST_SR1);
};
};
&pinctrl_imem {
pinctrl-names = "default";
pinctrl-0 = <&initial_imem>;
initial_imem: initial-state {
PIN(INPUT, gpf0-0, UP, FAST_SR1);
PIN(INPUT, gpf0-1, UP, FAST_SR1);
PIN(INPUT, gpf0-2, DOWN, FAST_SR1);
PIN(INPUT, gpf0-3, UP, FAST_SR1);
PIN(INPUT, gpf0-4, DOWN, FAST_SR1);
PIN(INPUT, gpf0-5, NONE, FAST_SR1);
PIN(INPUT, gpf0-6, DOWN, FAST_SR1);
PIN(INPUT, gpf0-7, UP, FAST_SR1);
};
};
&pinctrl_nfc {
pinctrl-names = "default";
pinctrl-0 = <&initial_nfc>;
initial_nfc: initial-state {
PIN(INPUT, gpj0-2, DOWN, FAST_SR1);
};
};
&pinctrl_peric {
pinctrl-names = "default";
pinctrl-0 = <&initial_peric>;
initial_peric: initial-state {
PIN(INPUT, gpv7-0, DOWN, FAST_SR1);
PIN(INPUT, gpv7-1, DOWN, FAST_SR1);
PIN(INPUT, gpv7-2, NONE, FAST_SR1);
PIN(INPUT, gpv7-3, DOWN, FAST_SR1);
PIN(INPUT, gpv7-4, DOWN, FAST_SR1);
PIN(INPUT, gpv7-5, DOWN, FAST_SR1);
PIN(INPUT, gpb0-4, DOWN, FAST_SR1);
PIN(INPUT, gpc0-2, DOWN, FAST_SR1);
PIN(INPUT, gpc0-5, DOWN, FAST_SR1);
PIN(INPUT, gpc0-7, DOWN, FAST_SR1);
PIN(INPUT, gpc1-1, DOWN, FAST_SR1);
PIN(INPUT, gpc3-4, NONE, FAST_SR1);
PIN(INPUT, gpc3-5, NONE, FAST_SR1);
PIN(INPUT, gpc3-6, NONE, FAST_SR1);
PIN(INPUT, gpc3-7, NONE, FAST_SR1);
PIN(OUTPUT, gpg0-0, NONE, FAST_SR1);
PIN(2, gpg0-1, DOWN, FAST_SR1);
PIN(INPUT, gpd2-5, DOWN, FAST_SR1);
PIN(INPUT, gpd4-0, NONE, FAST_SR1);
PIN(INPUT, gpd4-1, DOWN, FAST_SR1);
PIN(INPUT, gpd4-2, DOWN, FAST_SR1);
PIN(INPUT, gpd4-3, DOWN, FAST_SR1);
PIN(INPUT, gpd4-4, DOWN, FAST_SR1);
PIN(INPUT, gpd6-3, DOWN, FAST_SR1);
PIN(INPUT, gpd8-1, UP, FAST_SR1);
PIN(INPUT, gpg1-0, DOWN, FAST_SR1);
PIN(INPUT, gpg1-1, DOWN, FAST_SR1);
PIN(INPUT, gpg1-2, DOWN, FAST_SR1);
PIN(INPUT, gpg1-3, DOWN, FAST_SR1);
PIN(INPUT, gpg1-4, DOWN, FAST_SR1);
PIN(INPUT, gpg2-0, DOWN, FAST_SR1);
PIN(INPUT, gpg2-1, DOWN, FAST_SR1);
PIN(INPUT, gpg3-0, DOWN, FAST_SR1);
PIN(INPUT, gpg3-1, DOWN, FAST_SR1);
PIN(INPUT, gpg3-5, DOWN, FAST_SR1);
PIN(INPUT, gpg3-7, DOWN, FAST_SR1);
};
};
&pinctrl_touch {
pinctrl-names = "default";
pinctrl-0 = <&initial_touch>;
initial_touch: initial-state {
PIN(INPUT, gpj1-2, DOWN, FAST_SR1);
};
};
&pwm {
pinctrl-0 = <&pwm0_out>;
pinctrl-names = "default";
status = "okay";
};
&mic {
status = "okay";
i80-if-timings {
};
};
&pmu_system_controller {
assigned-clocks = <&pmu_system_controller 0>;
assigned-clock-parents = <&xxti>;
};
&serial_1 {
status = "okay";
};
&spi_1 {
cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>;
status = "okay";
wm5110: wm5110-codec@0 {
compatible = "wlf,wm5110";
reg = <0x0>;
spi-max-frequency = <20000000>;
interrupt-parent = <&gpa0>;
interrupts = <4 IRQ_TYPE_NONE>;
clocks = <&pmu_system_controller 0>,
<&s2mps13_osc S2MPS11_CLK_BT>;
clock-names = "mclk1", "mclk2";
gpio-controller;
#gpio-cells = <2>;
wlf,micd-detect-debounce = <300>;
wlf,micd-bias-start-time = <0x1>;
wlf,micd-rate = <0x7>;
wlf,micd-dbtime = <0x1>;
wlf,micd-force-micbias;
wlf,micd-configs = <0x0 1 0>;
wlf,hpdet-channel = <1>;
wlf,gpsw = <0x1>;
wlf,inmode = <2 0 2 0>;
wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>;
wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>;
/* core supplies */
AVDD-supply = <&ldo18_reg>;
DBVDD1-supply = <&ldo18_reg>;
CPVDD-supply = <&ldo18_reg>;
DBVDD2-supply = <&ldo18_reg>;
DBVDD3-supply = <&ldo18_reg>;
controller-data {
samsung,spi-feedback-delay = <0>;
};
};
};
&timer {
clock-frequency = <24000000>;
};
&tmu_atlas0 {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_apollo {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_g3d {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&usbdrd30 {
vdd33-supply = <&ldo10_reg>;
vdd10-supply = <&ldo6_reg>;
status = "okay";
};
&usbdrd_dwc3_0 {
dr_mode = "otg";
};
&usbdrd30_phy {
vbus-supply = <&safeout1_reg>;
status = "okay";
};
&xxti {
clock-frequency = <24000000>;
};
......@@ -11,1039 +11,21 @@
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "exynos5433.dtsi"
#include <dt-bindings/clock/samsung,s2mps11.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "exynos5433-tm2-common.dtsi"
/ {
model = "Samsung TM2 board";
compatible = "samsung,tm2", "samsung,exynos5433";
aliases {
gsc0 = &gsc_0;
gsc1 = &gsc_1;
gsc2 = &gsc_2;
pinctrl0 = &pinctrl_alive;
pinctrl1 = &pinctrl_aud;
pinctrl2 = &pinctrl_cpif;
pinctrl3 = &pinctrl_ese;
pinctrl4 = &pinctrl_finger;
pinctrl5 = &pinctrl_fsys;
pinctrl6 = &pinctrl_imem;
pinctrl7 = &pinctrl_nfc;
pinctrl8 = &pinctrl_peric;
pinctrl9 = &pinctrl_touch;
serial0 = &serial_0;
serial1 = &serial_1;
serial2 = &serial_2;
serial3 = &serial_3;
spi0 = &spi_0;
spi1 = &spi_1;
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
mshc0 = &mshc_0;
mshc2 = &mshc_2;
};
chosen {
stdout-path = &serial_1;
};
memory@20000000 {
device_type = "memory";
reg = <0x0 0x20000000 0x0 0xc0000000>;
};
gpio-keys {
compatible = "gpio-keys";
power-key {
gpios = <&gpa2 7 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
label = "power key";
debounce-interval = <10>;
};
volume-up-key {
gpios = <&gpa2 0 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
label = "volume-up key";
debounce-interval = <10>;
};
volume-down-key {
gpios = <&gpa2 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
label = "volume-down key";
debounce-interval = <10>;
};
homepage-key {
gpios = <&gpa0 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_MENU>;
label = "homepage key";
debounce-interval = <10>;
};
};
i2c_max98504: i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&gpd0 1 GPIO_ACTIVE_HIGH /* SPK_AMP_SDA */
&gpd0 0 GPIO_ACTIVE_HIGH /* SPK_AMP_SCL */ >;
i2c-gpio,delay-us = <2>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
max98504: max98504@31 {
compatible = "maxim,max98504";
reg = <0x31>;
maxim,rx-path = <1>;
maxim,tx-path = <1>;
maxim,tx-channel-mask = <3>;
maxim,tx-channel-source = <2>;
};
};
sound {
compatible = "samsung,tm2-audio";
audio-codec = <&wm5110>;
i2s-controller = <&i2s0>;
audio-amplifier = <&max98504>;
mic-bias-gpios = <&gpr3 2 GPIO_ACTIVE_HIGH>;
model = "wm5110";
samsung,audio-routing =
/* Headphone */
"HP", "HPOUT1L",
"HP", "HPOUT1R",
/* Speaker */
"SPK", "SPKOUT",
"SPKOUT", "HPOUT2L",
"SPKOUT", "HPOUT2R",
/* Receiver */
"RCV", "HPOUT3L",
"RCV", "HPOUT3R";
status = "okay";
};
};
&adc {
vdd-supply = <&ldo3_reg>;
status = "okay";
thermistor-ap {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 0>;
};
thermistor-battery {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 1>;
#thermal-sensor-cells = <0>;
};
thermistor-charger {
compatible = "murata,ncp03wf104";
pullup-uv = <1800000>;
pullup-ohm = <100000>;
pulldown-ohm = <0>;
io-channels = <&adc 2>;
};
};
&cmu_aud {
assigned-clocks = <&cmu_aud CLK_MOUT_AUD_PLL_USER>;
assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>;
};
&cmu_fsys {
assigned-clocks = <&cmu_top CLK_MOUT_SCLK_USBDRD30>,
<&cmu_top CLK_MOUT_SCLK_USBHOST30>,
<&cmu_fsys CLK_MOUT_SCLK_USBDRD30_USER>,
<&cmu_fsys CLK_MOUT_SCLK_USBHOST30_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER>,
<&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_USER>,
<&cmu_top CLK_DIV_SCLK_USBDRD30>,
<&cmu_top CLK_DIV_SCLK_USBHOST30>;
assigned-clock-parents = <&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>,
<&cmu_top CLK_SCLK_USBDRD30_FSYS>,
<&cmu_top CLK_SCLK_USBHOST30_FSYS>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY>,
<&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_PHY>;
assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>,
<66700000>, <66700000>;
};
&cmu_gscl {
assigned-clocks = <&cmu_gscl CLK_MOUT_ACLK_GSCL_111_USER>,
<&cmu_gscl CLK_MOUT_ACLK_GSCL_333_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_GSCL_111>,
<&cmu_top CLK_ACLK_GSCL_333>;
};
&cmu_mfc {
assigned-clocks = <&cmu_mfc CLK_MOUT_ACLK_MFC_400_USER>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MFC_400>;
};
&cmu_mscl {
assigned-clocks = <&cmu_mscl CLK_MOUT_ACLK_MSCL_400_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG>,
<&cmu_top CLK_MOUT_SCLK_JPEG_A>;
assigned-clock-parents = <&cmu_top CLK_ACLK_MSCL_400>,
<&cmu_top CLK_SCLK_JPEG_MSCL>,
<&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>,
<&cmu_top CLK_MOUT_BUS_PLL_USER>;
};
&cpu0 {
cpu-supply = <&buck3_reg>;
};
&cpu4 {
cpu-supply = <&buck2_reg>;
};
&decon {
status = "okay";
i80-if-timings {
};
};
&dsi {
status = "okay";
vddcore-supply = <&ldo6_reg>;
vddio-supply = <&ldo7_reg>;
samsung,pll-clock-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&te_irq>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
dsi_out: endpoint {
samsung,burst-clock-frequency = <512000000>;
samsung,esc-clock-frequency = <16000000>;
};
};
};
};
&hsi2c_0 {
status = "okay";
clock-frequency = <2500000>;
s2mps13-pmic@66 {
compatible = "samsung,s2mps13-pmic";
interrupt-parent = <&gpa0>;
interrupts = <7 IRQ_TYPE_NONE>;
reg = <0x66>;
samsung,s2mps11-wrstbi-ground;
s2mps13_osc: clocks {
compatible = "samsung,s2mps13-clk";
#clock-cells = <1>;
clock-output-names = "s2mps13_ap", "s2mps13_cp",
"s2mps13_bt";
};
regulators {
ldo1_reg: LDO1 {
regulator-name = "VDD_ALIVE_0.9V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-always-on;
};
ldo2_reg: LDO2 {
regulator-name = "VDDQ_MMC2_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo3_reg: LDO3 {
regulator-name = "VDD1_E_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo4_reg: LDO4 {
regulator-name = "VDD10_MIF_PLL_1.0V_AP";
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo5_reg: LDO5 {
regulator-name = "VDD10_DPLL_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo6_reg: LDO6 {
regulator-name = "VDD10_MIPI2L_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo7_reg: LDO7 {
regulator-name = "VDD18_MIPI2L_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo8_reg: LDO8 {
regulator-name = "VDD18_LLI_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo9_reg: LDO9 {
regulator-name = "VDD18_ABB_ETC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo10_reg: LDO10 {
regulator-name = "VDD33_USB30_3.0V_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo11_reg: LDO11 {
regulator-name = "VDD_INT_M_1.0V_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo12_reg: LDO12 {
regulator-name = "VDD_KFC_M_1.1V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
};
ldo13_reg: LDO13 {
regulator-name = "VDD_G3D_M_0.95V_AP";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo14_reg: LDO14 {
regulator-name = "VDDQ_M1_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo15_reg: LDO15 {
regulator-name = "VDDQ_M2_LDO_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
ldo16_reg: LDO16 {
regulator-name = "VDDQ_EFUSE";
regulator-min-microvolt = <1400000>;
regulator-max-microvolt = <3400000>;
regulator-always-on;
};
ldo17_reg: LDO17 {
regulator-name = "V_TFLASH_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo18_reg: LDO18 {
regulator-name = "V_CODEC_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo19_reg: LDO19 {
regulator-name = "VDDA_1.8V_COMP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo20_reg: LDO20 {
regulator-name = "VCC_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo21_reg: LDO21 {
regulator-name = "VT_CAM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo22_reg: LDO22 {
regulator-name = "CAM_IO_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo23_reg: LDO23 {
regulator-name = "CAM_SEN_CORE_1.2V_AP";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1200000>;
};
ldo24_reg: LDO24 {
regulator-name = "VT_CAM_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
ldo25_reg: LDO25 {
regulator-name = "CAM_SEN_A2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo26_reg: LDO26 {
regulator-name = "CAM_AF_2.8V_AP";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo27_reg: LDO27 {
regulator-name = "VCC_3.0V_LCD_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo28_reg: LDO28 {
regulator-name = "VCC_1.8V_LCD_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo29_reg: LDO29 {
regulator-name = "VT_CAM_2.8V";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo30_reg: LDO30 {
regulator-name = "TSP_AVDD_3.3V_AP";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo31_reg: LDO31 {
regulator-name = "TSP_VDD_1.85V_AP";
regulator-min-microvolt = <1850000>;
regulator-max-microvolt = <1850000>;
};
ldo32_reg: LDO32 {
regulator-name = "VTOUCH_1.8V_AP";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo33_reg: LDO33 {
regulator-name = "VTOUCH_LED_3.3V";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <12500>;
};
ldo34_reg: LDO34 {
regulator-name = "VCC_1.8V_MHL_AP";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2100000>;
};
ldo35_reg: LDO35 {
regulator-name = "OIS_VM_2.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>;
};
ldo36_reg: LDO36 {
regulator-name = "VSIL_1.0V";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
};
ldo37_reg: LDO37 {
regulator-name = "VF_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo38_reg: LDO38 {
regulator-name = "VCC_3.0V_MOTOR_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ldo39_reg: LDO39 {
regulator-name = "V_HRM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo40_reg: LDO40 {
regulator-name = "V_HRM_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
buck1_reg: BUCK1 {
regulator-name = "VDD_MIF_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck2_reg: BUCK2 {
regulator-name = "VDD_EGL_1.0V_AP";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck3_reg: BUCK3 {
regulator-name = "VDD_KFC_1.0V_AP";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck4_reg: BUCK4 {
regulator-name = "VDD_INT_0.95V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck5_reg: BUCK5 {
regulator-name = "VDD_DISP_CAM0_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck6_reg: BUCK6 {
regulator-name = "VDD_G3D_0.9V_AP";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
buck7_reg: BUCK7 {
regulator-name = "VDD_MEM1_1.2V_AP";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
buck8_reg: BUCK8 {
regulator-name = "VDD_LLDO_1.35V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck9_reg: BUCK9 {
regulator-name = "VDD_MLDO_2.0V_AP";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck10_reg: BUCK10 {
regulator-name = "vdd_mem2";
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
};
};
};
};
&hsi2c_8 {
status = "okay";
max77843@66 {
compatible = "maxim,max77843";
interrupt-parent = <&gpa1>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
reg = <0x66>;
muic: max77843-muic {
compatible = "maxim,max77843-muic";
};
regulators {
compatible = "maxim,max77843-regulator";
safeout1_reg: SAFEOUT1 {
regulator-name = "SAFEOUT1";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
safeout2_reg: SAFEOUT2 {
regulator-name = "SAFEOUT2";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <4950000>;
};
charger_reg: CHARGER {
regulator-name = "CHARGER";
regulator-min-microamp = <100000>;
regulator-max-microamp = <3150000>;
};
};
haptic: max77843-haptic {
compatible = "maxim,max77843-haptic";
haptic-supply = <&ldo38_reg>;
pwms = <&pwm 0 33670 0>;
pwm-names = "haptic";
};
};
};
&i2s0 {
status = "okay";
};
&mshc_0 {
status = "okay";
num-slots = <1>;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
cap-mmc-highspeed;
non-removable;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
samsung,dw-mshc-hs400-timing = <0 3>;
samsung,read-strobe-delay = <90>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4
&sd0_bus8 &sd0_rdqs>;
bus-width = <8>;
assigned-clocks = <&cmu_top CLK_SCLK_MMC0_FSYS>;
assigned-clock-rates = <800000000>;
};
&mshc_2 {
status = "okay";
num-slots = <1>;
cap-sd-highspeed;
disable-wp;
cd-gpios = <&gpa2 4 GPIO_ACTIVE_HIGH>;
cd-inverted;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
samsung,dw-mshc-ddr-timing = <0 2>;
fifo-depth = <0x80>;
pinctrl-names = "default";
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>;
bus-width = <4>;
};
&pinctrl_alive {
pinctrl-names = "default";
pinctrl-0 = <&initial_alive>;
initial_alive: initial-state {
PIN(IN, gpa0-0, DOWN, LV1);
PIN(IN, gpa0-1, NONE, LV1);
PIN(IN, gpa0-2, DOWN, LV1);
PIN(IN, gpa0-3, NONE, LV1);
PIN(IN, gpa0-4, NONE, LV1);
PIN(IN, gpa0-5, DOWN, LV1);
PIN(IN, gpa0-6, NONE, LV1);
PIN(IN, gpa0-7, NONE, LV1);
PIN(IN, gpa1-0, UP, LV1);
PIN(IN, gpa1-1, NONE, LV1);
PIN(IN, gpa1-2, NONE, LV1);
PIN(IN, gpa1-3, DOWN, LV1);
PIN(IN, gpa1-4, DOWN, LV1);
PIN(IN, gpa1-5, NONE, LV1);
PIN(IN, gpa1-6, NONE, LV1);
PIN(IN, gpa1-7, NONE, LV1);
PIN(IN, gpa2-0, NONE, LV1);
PIN(IN, gpa2-1, NONE, LV1);
PIN(IN, gpa2-2, NONE, LV1);
PIN(IN, gpa2-3, DOWN, LV1);
PIN(IN, gpa2-4, NONE, LV1);
PIN(IN, gpa2-5, DOWN, LV1);
PIN(IN, gpa2-6, DOWN, LV1);
PIN(IN, gpa2-7, NONE, LV1);
PIN(IN, gpa3-0, DOWN, LV1);
PIN(IN, gpa3-1, DOWN, LV1);
PIN(IN, gpa3-2, NONE, LV1);
PIN(IN, gpa3-3, DOWN, LV1);
PIN(IN, gpa3-4, NONE, LV1);
PIN(IN, gpa3-5, DOWN, LV1);
PIN(IN, gpa3-6, DOWN, LV1);
PIN(IN, gpa3-7, DOWN, LV1);
PIN(IN, gpf1-0, NONE, LV1);
PIN(IN, gpf1-1, NONE, LV1);
PIN(IN, gpf1-2, DOWN, LV1);
PIN(IN, gpf1-4, UP, LV1);
PIN(OUT, gpf1-5, NONE, LV1);
PIN(IN, gpf1-6, DOWN, LV1);
PIN(IN, gpf1-7, DOWN, LV1);
PIN(IN, gpf2-0, DOWN, LV1);
PIN(IN, gpf2-1, DOWN, LV1);
PIN(IN, gpf2-2, DOWN, LV1);
PIN(IN, gpf2-3, DOWN, LV1);
PIN(IN, gpf3-0, DOWN, LV1);
PIN(IN, gpf3-1, DOWN, LV1);
PIN(IN, gpf3-2, NONE, LV1);
PIN(IN, gpf3-3, DOWN, LV1);
PIN(IN, gpf4-0, DOWN, LV1);
PIN(IN, gpf4-1, DOWN, LV1);
PIN(IN, gpf4-2, DOWN, LV1);
PIN(IN, gpf4-3, DOWN, LV1);
PIN(IN, gpf4-4, DOWN, LV1);
PIN(IN, gpf4-5, DOWN, LV1);
PIN(IN, gpf4-6, DOWN, LV1);
PIN(IN, gpf4-7, DOWN, LV1);
PIN(IN, gpf5-0, DOWN, LV1);
PIN(IN, gpf5-1, DOWN, LV1);
PIN(IN, gpf5-2, DOWN, LV1);
PIN(IN, gpf5-3, DOWN, LV1);
PIN(OUT, gpf5-4, NONE, LV1);
PIN(IN, gpf5-5, DOWN, LV1);
PIN(IN, gpf5-6, DOWN, LV1);
PIN(IN, gpf5-7, DOWN, LV1);
};
te_irq: te_irq {
samsung,pins = "gpf1-3";
samsung,pin-function = <0xf>;
};
};
&pinctrl_cpif {
pinctrl-names = "default";
pinctrl-0 = <&initial_cpif>;
initial_cpif: initial-state {
PIN(IN, gpv6-0, DOWN, LV1);
PIN(IN, gpv6-1, DOWN, LV1);
};
};
&pinctrl_ese {
pinctrl-names = "default";
pinctrl-0 = <&initial_ese>;
initial_ese: initial-state {
PIN(IN, gpj2-0, DOWN, LV1);
PIN(IN, gpj2-1, DOWN, LV1);
PIN(IN, gpj2-2, DOWN, LV1);
};
};
&pinctrl_fsys {
pinctrl-names = "default";
pinctrl-0 = <&initial_fsys>;
initial_fsys: initial-state {
PIN(IN, gpr3-0, NONE, LV1);
PIN(IN, gpr3-1, DOWN, LV1);
PIN(IN, gpr3-2, DOWN, LV1);
PIN(IN, gpr3-3, DOWN, LV1);
PIN(IN, gpr3-7, NONE, LV1);
};
};
&pinctrl_imem {
pinctrl-names = "default";
pinctrl-0 = <&initial_imem>;
initial_imem: initial-state {
PIN(IN, gpf0-0, UP, LV1);
PIN(IN, gpf0-1, UP, LV1);
PIN(IN, gpf0-2, DOWN, LV1);
PIN(IN, gpf0-3, UP, LV1);
PIN(IN, gpf0-4, DOWN, LV1);
PIN(IN, gpf0-5, NONE, LV1);
PIN(IN, gpf0-6, DOWN, LV1);
PIN(IN, gpf0-7, UP, LV1);
};
};
&pinctrl_nfc {
pinctrl-names = "default";
pinctrl-0 = <&initial_nfc>;
initial_nfc: initial-state {
PIN(IN, gpj0-2, DOWN, LV1);
};
};
&pinctrl_peric {
pinctrl-names = "default";
pinctrl-0 = <&initial_peric>;
initial_peric: initial-state {
PIN(IN, gpv7-0, DOWN, LV1);
PIN(IN, gpv7-1, DOWN, LV1);
PIN(IN, gpv7-2, NONE, LV1);
PIN(IN, gpv7-3, DOWN, LV1);
PIN(IN, gpv7-4, DOWN, LV1);
PIN(IN, gpv7-5, DOWN, LV1);
PIN(IN, gpb0-4, DOWN, LV1);
PIN(IN, gpc0-2, DOWN, LV1);
PIN(IN, gpc0-5, DOWN, LV1);
PIN(IN, gpc0-7, DOWN, LV1);
PIN(IN, gpc1-1, DOWN, LV1);
PIN(IN, gpc3-4, NONE, LV1);
PIN(IN, gpc3-5, NONE, LV1);
PIN(IN, gpc3-6, NONE, LV1);
PIN(IN, gpc3-7, NONE, LV1);
PIN(OUT, gpg0-0, NONE, LV1);
PIN(FUNC1, gpg0-1, DOWN, LV1);
PIN(IN, gpd2-5, DOWN, LV1);
PIN(IN, gpd4-0, NONE, LV1);
PIN(IN, gpd4-1, DOWN, LV1);
PIN(IN, gpd4-2, DOWN, LV1);
PIN(IN, gpd4-3, DOWN, LV1);
PIN(IN, gpd4-4, DOWN, LV1);
PIN(IN, gpd6-3, DOWN, LV1);
PIN(IN, gpd8-1, UP, LV1);
PIN(IN, gpg1-0, DOWN, LV1);
PIN(IN, gpg1-1, DOWN, LV1);
PIN(IN, gpg1-2, DOWN, LV1);
PIN(IN, gpg1-3, DOWN, LV1);
PIN(IN, gpg1-4, DOWN, LV1);
PIN(IN, gpg2-0, DOWN, LV1);
PIN(IN, gpg2-1, DOWN, LV1);
PIN(IN, gpg3-0, DOWN, LV1);
PIN(IN, gpg3-1, DOWN, LV1);
PIN(IN, gpg3-5, DOWN, LV1);
PIN(IN, gpg3-7, DOWN, LV1);
};
};
&pinctrl_touch {
pinctrl-names = "default";
pinctrl-0 = <&initial_touch>;
initial_touch: initial-state {
PIN(IN, gpj1-2, DOWN, LV1);
};
};
&pwm {
pinctrl-0 = <&pwm0_out>;
pinctrl-names = "default";
status = "okay";
};
&mic {
status = "okay";
i80-if-timings {
};
};
&pmu_system_controller {
assigned-clocks = <&pmu_system_controller 0>;
assigned-clock-parents = <&xxti>;
};
&serial_1 {
status = "okay";
};
&spi_1 {
cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>;
status = "okay";
wm5110: wm5110-codec@0 {
compatible = "wlf,wm5110";
reg = <0x0>;
spi-max-frequency = <20000000>;
interrupt-parent = <&gpa0>;
interrupts = <4 IRQ_TYPE_NONE>;
clocks = <&pmu_system_controller 0>,
<&s2mps13_osc S2MPS11_CLK_BT>;
clock-names = "mclk1", "mclk2";
gpio-controller;
#gpio-cells = <2>;
wlf,micd-detect-debounce = <300>;
wlf,micd-bias-start-time = <0x1>;
wlf,micd-rate = <0x7>;
wlf,micd-dbtime = <0x1>;
wlf,micd-force-micbias;
wlf,micd-configs = <0x0 1 0>;
wlf,hpdet-channel = <1>;
wlf,gpsw = <0x1>;
wlf,inmode = <2 0 2 0>;
wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>;
wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>;
/* core supplies */
AVDD-supply = <&ldo18_reg>;
DBVDD1-supply = <&ldo18_reg>;
CPVDD-supply = <&ldo18_reg>;
DBVDD2-supply = <&ldo18_reg>;
DBVDD3-supply = <&ldo18_reg>;
controller-data {
samsung,spi-feedback-delay = <0>;
};
};
};
&timer {
clock-frequency = <24000000>;
};
&tmu_atlas0 {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_apollo {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&tmu_g3d {
vtmu-supply = <&ldo3_reg>;
status = "okay";
};
&usbdrd30 {
vdd33-supply = <&ldo10_reg>;
vdd10-supply = <&ldo6_reg>;
status = "okay";
};
&usbdrd_dwc3_0 {
dr_mode = "otg";
};
&usbdrd30_phy {
vbus-supply = <&safeout1_reg>;
status = "okay";
&ldo31_reg {
regulator-name = "TSP_VDD_1.85V_AP";
regulator-min-microvolt = <1850000>;
regulator-max-microvolt = <1850000>;
};
&xxti {
clock-frequency = <24000000>;
&ldo38_reg {
regulator-name = "VCC_3.0V_MOTOR_AP";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
......@@ -11,23 +11,13 @@
* published by the Free Software Foundation.
*/
#include "exynos5433-tm2.dts"
#include "exynos5433-tm2-common.dtsi"
/ {
model = "Samsung TM2E board";
compatible = "samsung,tm2e", "samsung,exynos5433";
};
&ldo23_reg {
regulator-name = "CAM_SEN_CORE_1.025V_AP";
regulator-max-microvolt = <1050000>;
};
&ldo25_reg {
regulator-name = "UNUSED_LDO25";
regulator-always-off;
};
&ldo31_reg {
regulator-name = "TSP_VDD_1.8V_AP";
regulator-min-microvolt = <1800000>;
......
......@@ -299,7 +299,7 @@ cmu_peric: clock-controller@14c80000 {
#clock-cells = <1>;
};
cmu_peris: clock-controller@0x10040000 {
cmu_peris: clock-controller@10040000 {
compatible = "samsung,exynos5433-cmu-peris";
reg = <0x10040000 0x1000>;
#clock-cells = <1>;
......@@ -599,6 +599,30 @@ mct@101c0000 {
clock-names = "fin_pll", "mct";
};
ppmu_d0_cpu: ppmu@10480000 {
compatible = "samsung,exynos-ppmu-v2";
reg = <0x10480000 0x2000>;
status = "disabled";
};
ppmu_d0_general: ppmu@10490000 {
compatible = "samsung,exynos-ppmu-v2";
reg = <0x10490000 0x2000>;
status = "disabled";
};
ppmu_d1_cpu: ppmu@104b0000 {
compatible = "samsung,exynos-ppmu-v2";
reg = <0x104b0000 0x2000>;
status = "disabled";
};
ppmu_d1_general: ppmu@104c0000 {
compatible = "samsung,exynos-ppmu-v2";
reg = <0x104c0000 0x2000>;
status = "disabled";
};
pinctrl_alive: pinctrl@10580000 {
compatible = "samsung,exynos5433-pinctrl";
reg = <0x10580000 0x1a20>, <0x11090000 0x100>;
......@@ -727,6 +751,29 @@ decon_to_mic: endpoint {
};
};
decon_tv: decon@13880000 {
compatible = "samsung,exynos5433-decon-tv";
reg = <0x13880000 0x20b8>;
clocks = <&cmu_disp CLK_PCLK_DECON_TV>,
<&cmu_disp CLK_ACLK_DECON_TV>,
<&cmu_disp CLK_ACLK_SMMU_TV0X>,
<&cmu_disp CLK_ACLK_XIU_TV0X>,
<&cmu_disp CLK_PCLK_SMMU_TV0X>,
<&cmu_disp CLK_SCLK_DECON_TV_VCLK>,
<&cmu_disp CLK_SCLK_DECON_TV_ECLK>;
clock-names = "pclk", "aclk_decon", "aclk_smmu_decon0x",
"aclk_xiu_decon0x", "pclk_smmu_decon0x",
"sclk_decon_vclk", "sclk_decon_eclk";
samsung,disp-sysreg = <&syscon_disp>;
interrupt-names = "fifo", "vsync", "lcd_sys";
interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
iommus = <&sysmmu_tv0x>, <&sysmmu_tv1x>;
iommu-names = "m0", "m1";
};
dsi: dsi@13900000 {
compatible = "samsung,exynos5433-mipi-dsi";
reg = <0x13900000 0xC0>;
......@@ -790,6 +837,35 @@ mic_to_dsi: endpoint {
};
};
hdmi: hdmi@13970000 {
compatible = "samsung,exynos5433-hdmi";
reg = <0x13970000 0x70000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cmu_disp CLK_PCLK_HDMI>,
<&cmu_disp CLK_PCLK_HDMIPHY>,
<&cmu_disp CLK_PHYCLK_HDMIPHY_TMDS_CLKO>,
<&cmu_disp CLK_PHYCLK_HDMI_PIXEL>,
<&cmu_disp CLK_PHYCLK_HDMIPHY_TMDS_CLKO_PHY>,
<&cmu_disp CLK_MOUT_PHYCLK_HDMIPHY_TMDS_CLKO_USER>,
<&cmu_disp CLK_PHYCLK_HDMIPHY_PIXEL_CLKO_PHY>,
<&cmu_disp CLK_MOUT_PHYCLK_HDMIPHY_PIXEL_CLKO_USER>,
<&xxti>, <&cmu_disp CLK_SCLK_HDMI_SPDIF>;
clock-names = "hdmi_pclk", "hdmi_i_pclk",
"i_tmds_clk", "i_pixel_clk",
"tmds_clko", "tmds_clko_user",
"pixel_clko", "pixel_clko_user",
"oscclk", "i_spdif_clk";
phy = <&hdmiphy>;
ddc = <&hsi2c_11>;
samsung,syscon-phandle = <&pmu_system_controller>;
samsung,sysreg-phandle = <&syscon_disp>;
status = "disabled";
};
hdmiphy: hdmiphy@13af0000 {
reg = <0x13af0000 0x80>;
};
syscon_disp: syscon@13b80000 {
compatible = "syscon";
reg = <0x13b80000 0x1010>;
......@@ -868,7 +944,7 @@ mfc: codec@152E0000 {
iommu-names = "left", "right";
};
sysmmu_decon0x: sysmmu@0x13a00000 {
sysmmu_decon0x: sysmmu@13a00000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13a00000 0x1000>;
interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
......@@ -878,7 +954,7 @@ sysmmu_decon0x: sysmmu@0x13a00000 {
#iommu-cells = <0>;
};
sysmmu_decon1x: sysmmu@0x13a10000 {
sysmmu_decon1x: sysmmu@13a10000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13a10000 0x1000>;
interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
......@@ -888,7 +964,27 @@ sysmmu_decon1x: sysmmu@0x13a10000 {
#iommu-cells = <0>;
};
sysmmu_gscl0: sysmmu@0x13C80000 {
sysmmu_tv0x: sysmmu@13a20000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13a20000 0x1000>;
interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "pclk", "aclk";
clocks = <&cmu_disp CLK_PCLK_SMMU_TV0X>,
<&cmu_disp CLK_ACLK_SMMU_TV0X>;
#iommu-cells = <0>;
};
sysmmu_tv1x: sysmmu@13a30000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13a30000 0x1000>;
interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "pclk", "aclk";
clocks = <&cmu_disp CLK_PCLK_SMMU_TV1X>,
<&cmu_disp CLK_ACLK_SMMU_TV1X>;
#iommu-cells = <0>;
};
sysmmu_gscl0: sysmmu@13c80000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13C80000 0x1000>;
interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
......@@ -898,7 +994,7 @@ sysmmu_gscl0: sysmmu@0x13C80000 {
#iommu-cells = <0>;
};
sysmmu_gscl1: sysmmu@0x13C90000 {
sysmmu_gscl1: sysmmu@13c90000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13C90000 0x1000>;
interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
......@@ -908,7 +1004,7 @@ sysmmu_gscl1: sysmmu@0x13C90000 {
#iommu-cells = <0>;
};
sysmmu_gscl2: sysmmu@0x13CA0000 {
sysmmu_gscl2: sysmmu@13ca0000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x13CA0000 0x1000>;
interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>;
......@@ -918,7 +1014,7 @@ sysmmu_gscl2: sysmmu@0x13CA0000 {
#iommu-cells = <0>;
};
sysmmu_jpeg: sysmmu@0x15060000 {
sysmmu_jpeg: sysmmu@15060000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x15060000 0x1000>;
interrupts = <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>;
......@@ -928,7 +1024,7 @@ sysmmu_jpeg: sysmmu@0x15060000 {
#iommu-cells = <0>;
};
sysmmu_mfc_0: sysmmu@0x15200000 {
sysmmu_mfc_0: sysmmu@15200000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x15200000 0x1000>;
interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
......@@ -938,7 +1034,7 @@ sysmmu_mfc_0: sysmmu@0x15200000 {
#iommu-cells = <0>;
};
sysmmu_mfc_1: sysmmu@0x15210000 {
sysmmu_mfc_1: sysmmu@15210000 {
compatible = "samsung,exynos-sysmmu";
reg = <0x15210000 0x1000>;
interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
......@@ -1458,5 +1554,6 @@ timer: timer {
};
};
#include "exynos5433-bus.dtsi"
#include "exynos5433-pinctrl.dtsi"
#include "exynos5433-tmu.dtsi"
......@@ -45,6 +45,20 @@
#define EXYNOS5420_PIN_DRV_LV3 2
#define EXYNOS5420_PIN_DRV_LV4 3
/* Drive strengths for Exynos5433 */
#define EXYNOS5433_PIN_DRV_FAST_SR1 0
#define EXYNOS5433_PIN_DRV_FAST_SR2 1
#define EXYNOS5433_PIN_DRV_FAST_SR3 2
#define EXYNOS5433_PIN_DRV_FAST_SR4 3
#define EXYNOS5433_PIN_DRV_FAST_SR5 4
#define EXYNOS5433_PIN_DRV_FAST_SR6 5
#define EXYNOS5433_PIN_DRV_SLOW_SR1 8
#define EXYNOS5433_PIN_DRV_SLOW_SR2 9
#define EXYNOS5433_PIN_DRV_SLOW_SR3 0xa
#define EXYNOS5433_PIN_DRV_SLOW_SR4 0xb
#define EXYNOS5433_PIN_DRV_SLOW_SR5 0xc
#define EXYNOS5433_PIN_DRV_SLOW_SR6 0xf
#define EXYNOS_PIN_FUNC_INPUT 0
#define EXYNOS_PIN_FUNC_OUTPUT 1
#define EXYNOS_PIN_FUNC_2 2
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment