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