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