1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * TOPEET's Exynos4412 based itop board device tree source 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2016 SUMOMO Computer Association 6*4882a593Smuzhiyun * https://www.sumomo.mobi 7*4882a593Smuzhiyun * Randy Li <ayaka@soulik.info> 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * Device tree source file for TOPEET iTop Exynos 4412 core board 10*4882a593Smuzhiyun * which is based on Samsung's Exynos4412 SoC. 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/dts-v1/; 14*4882a593Smuzhiyun#include <dt-bindings/pwm/pwm.h> 15*4882a593Smuzhiyun#include <dt-bindings/sound/samsung-i2s.h> 16*4882a593Smuzhiyun#include "exynos4412-itop-scp-core.dtsi" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun/ { 19*4882a593Smuzhiyun model = "TOPEET iTop 4412 Elite board based on Exynos4412"; 20*4882a593Smuzhiyun compatible = "topeet,itop4412-elite", "samsung,exynos4412", "samsung,exynos4"; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun chosen { 23*4882a593Smuzhiyun bootargs = "root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 rootwait"; 24*4882a593Smuzhiyun stdout-path = "serial2:115200n8"; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun leds { 28*4882a593Smuzhiyun compatible = "gpio-leds"; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun led2 { 31*4882a593Smuzhiyun label = "red:system"; 32*4882a593Smuzhiyun gpios = <&gpx1 0 GPIO_ACTIVE_HIGH>; 33*4882a593Smuzhiyun default-state = "off"; 34*4882a593Smuzhiyun linux,default-trigger = "heartbeat"; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun led3 { 38*4882a593Smuzhiyun label = "red:user"; 39*4882a593Smuzhiyun gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>; 40*4882a593Smuzhiyun default-state = "off"; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun gpio-keys { 45*4882a593Smuzhiyun compatible = "gpio-keys"; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun home { 48*4882a593Smuzhiyun label = "GPIO Key Home"; 49*4882a593Smuzhiyun linux,code = <KEY_HOME>; 50*4882a593Smuzhiyun gpios = <&gpx1 1 GPIO_ACTIVE_LOW>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun back { 54*4882a593Smuzhiyun label = "GPIO Key Back"; 55*4882a593Smuzhiyun linux,code = <KEY_BACK>; 56*4882a593Smuzhiyun gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun sleep { 60*4882a593Smuzhiyun label = "GPIO Key Sleep"; 61*4882a593Smuzhiyun linux,code = <KEY_POWER>; 62*4882a593Smuzhiyun gpios = <&gpx3 3 GPIO_ACTIVE_LOW>; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun vol-up { 66*4882a593Smuzhiyun label = "GPIO Key Vol+"; 67*4882a593Smuzhiyun linux,code = <KEY_UP>; 68*4882a593Smuzhiyun gpios = <&gpx2 1 GPIO_ACTIVE_LOW>; 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun vol-down { 72*4882a593Smuzhiyun label = "GPIO Key Vol-"; 73*4882a593Smuzhiyun linux,code = <KEY_DOWN>; 74*4882a593Smuzhiyun gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun sound { 79*4882a593Smuzhiyun compatible = "simple-audio-card"; 80*4882a593Smuzhiyun simple-audio-card,name = "wm-sound"; 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun simple-audio-card,format = "i2s"; 83*4882a593Smuzhiyun simple-audio-card,bitclock-master = <&link0_codec>; 84*4882a593Smuzhiyun simple-audio-card,frame-master = <&link0_codec>; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun simple-audio-card,widgets = 87*4882a593Smuzhiyun "Microphone", "Mic Jack", 88*4882a593Smuzhiyun "Line", "Line In", 89*4882a593Smuzhiyun "Line", "Line Out", 90*4882a593Smuzhiyun "Speaker", "Speaker", 91*4882a593Smuzhiyun "Headphone", "Headphone Jack"; 92*4882a593Smuzhiyun simple-audio-card,routing = 93*4882a593Smuzhiyun "Headphone Jack", "HP_L", 94*4882a593Smuzhiyun "Headphone Jack", "HP_R", 95*4882a593Smuzhiyun "Speaker", "SPK_LP", 96*4882a593Smuzhiyun "Speaker", "SPK_LN", 97*4882a593Smuzhiyun "Speaker", "SPK_RP", 98*4882a593Smuzhiyun "Speaker", "SPK_RN", 99*4882a593Smuzhiyun "LINPUT1", "Mic Jack", 100*4882a593Smuzhiyun "LINPUT3", "Mic Jack", 101*4882a593Smuzhiyun "RINPUT1", "Mic Jack", 102*4882a593Smuzhiyun "RINPUT2", "Mic Jack"; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun simple-audio-card,cpu { 105*4882a593Smuzhiyun sound-dai = <&i2s0 0>; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun link0_codec: simple-audio-card,codec { 109*4882a593Smuzhiyun sound-dai = <&codec>; 110*4882a593Smuzhiyun clocks = <&i2s0 CLK_I2S_CDCLK>; 111*4882a593Smuzhiyun system-clock-frequency = <11289600>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun beep { 116*4882a593Smuzhiyun compatible = "pwm-beeper"; 117*4882a593Smuzhiyun pwms = <&pwm 0 4000000 PWM_POLARITY_INVERTED>; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun}; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun&adc { 122*4882a593Smuzhiyun vdd-supply = <&ldo3_reg>; 123*4882a593Smuzhiyun status = "okay"; 124*4882a593Smuzhiyun}; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun&camera { 127*4882a593Smuzhiyun pinctrl-0 = <&cam_port_a_clk_active>; 128*4882a593Smuzhiyun pinctrl-names = "default"; 129*4882a593Smuzhiyun status = "okay"; 130*4882a593Smuzhiyun assigned-clocks = <&clock CLK_MOUT_CAM0>; 131*4882a593Smuzhiyun assigned-clock-parents = <&clock CLK_XUSBXTI>; 132*4882a593Smuzhiyun}; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun&clock_audss { 135*4882a593Smuzhiyun assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 136*4882a593Smuzhiyun <&clock_audss EXYNOS_MOUT_I2S>, 137*4882a593Smuzhiyun <&clock_audss EXYNOS_DOUT_SRP>, 138*4882a593Smuzhiyun <&clock_audss EXYNOS_DOUT_AUD_BUS>; 139*4882a593Smuzhiyun assigned-clock-parents = <&clock CLK_FOUT_EPLL>, 140*4882a593Smuzhiyun <&clock_audss EXYNOS_MOUT_AUDSS>; 141*4882a593Smuzhiyun assigned-clock-rates = <0>, <0>, <112896000>, <11289600>; 142*4882a593Smuzhiyun}; 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun&ehci { 145*4882a593Smuzhiyun status = "okay"; 146*4882a593Smuzhiyun /* In order to reset USB ethernet */ 147*4882a593Smuzhiyun samsung,vbus-gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun phys = <&exynos_usbphy 1>, <&exynos_usbphy 3>; 150*4882a593Smuzhiyun phy-names = "host", "hsic1"; 151*4882a593Smuzhiyun}; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun&exynos_usbphy { 154*4882a593Smuzhiyun status = "okay"; 155*4882a593Smuzhiyun}; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun&fimc_0 { 158*4882a593Smuzhiyun status = "okay"; 159*4882a593Smuzhiyun assigned-clocks = <&clock CLK_MOUT_FIMC0>, 160*4882a593Smuzhiyun <&clock CLK_SCLK_FIMC0>; 161*4882a593Smuzhiyun assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 162*4882a593Smuzhiyun assigned-clock-rates = <0>, <176000000>; 163*4882a593Smuzhiyun}; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun&hsotg { 166*4882a593Smuzhiyun dr_mode = "peripheral"; 167*4882a593Smuzhiyun status = "okay"; 168*4882a593Smuzhiyun}; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun&i2c_4 { 171*4882a593Smuzhiyun samsung,i2c-sda-delay = <100>; 172*4882a593Smuzhiyun samsung,i2c-slave-addr = <0x10>; 173*4882a593Smuzhiyun samsung,i2c-max-bus-freq = <100000>; 174*4882a593Smuzhiyun pinctrl-0 = <&i2c4_bus>; 175*4882a593Smuzhiyun pinctrl-names = "default"; 176*4882a593Smuzhiyun status = "okay"; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun codec: wm8960@1a { 179*4882a593Smuzhiyun compatible = "wlf,wm8960"; 180*4882a593Smuzhiyun reg = <0x1a>; 181*4882a593Smuzhiyun clocks = <&pmu_system_controller 0>; 182*4882a593Smuzhiyun clock-names = "MCLK1"; 183*4882a593Smuzhiyun wlf,shared-lrclk; 184*4882a593Smuzhiyun #sound-dai-cells = <0>; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun}; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun&i2s0 { 189*4882a593Smuzhiyun pinctrl-0 = <&i2s0_bus>; 190*4882a593Smuzhiyun pinctrl-names = "default"; 191*4882a593Smuzhiyun status = "okay"; 192*4882a593Smuzhiyun}; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun&pinctrl_1 { 195*4882a593Smuzhiyun ether-reset { 196*4882a593Smuzhiyun samsung,pins = "gpc0-1"; 197*4882a593Smuzhiyun samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 198*4882a593Smuzhiyun samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 199*4882a593Smuzhiyun samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun}; 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun&pwm { 204*4882a593Smuzhiyun status = "okay"; 205*4882a593Smuzhiyun pinctrl-0 = <&pwm0_out>; 206*4882a593Smuzhiyun pinctrl-names = "default"; 207*4882a593Smuzhiyun samsung,pwm-outputs = <0>; 208*4882a593Smuzhiyun}; 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun&sdhci_2 { 211*4882a593Smuzhiyun bus-width = <4>; 212*4882a593Smuzhiyun pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; 213*4882a593Smuzhiyun pinctrl-names = "default"; 214*4882a593Smuzhiyun cd-gpio = <&gpx0 7 GPIO_ACTIVE_LOW>; 215*4882a593Smuzhiyun cap-sd-highspeed; 216*4882a593Smuzhiyun vmmc-supply = <&ldo23_reg>; 217*4882a593Smuzhiyun vqmmc-supply = <&ldo17_reg>; 218*4882a593Smuzhiyun status = "okay"; 219*4882a593Smuzhiyun}; 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun&serial_1 { 222*4882a593Smuzhiyun status = "okay"; 223*4882a593Smuzhiyun}; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun&serial_2 { 226*4882a593Smuzhiyun status = "okay"; 227*4882a593Smuzhiyun}; 228