1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Samsung's Exynos3250 based ARTIK5 module device tree source 4 * 5 * Copyright (c) 2016 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com 7 * 8 * Device tree source file for Samsung's ARTIK5 module which is based on 9 * Samsung Exynos3250 SoC. 10 */ 11 12#include "exynos3250.dtsi" 13#include <dt-bindings/clock/samsung,s2mps11.h> 14#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/interrupt-controller/irq.h> 16 17/ { 18 compatible = "samsung,artik5", "samsung,exynos3250", "samsung,exynos3"; 19 20 chosen { 21 stdout-path = &serial_2; 22 }; 23 24 memory@40000000 { 25 device_type = "memory"; 26 reg = <0x40000000 0x1f800000>; 27 }; 28 29 firmware@205f000 { 30 compatible = "samsung,secure-firmware"; 31 reg = <0x0205f000 0x1000>; 32 }; 33 34 thermal-zones { 35 cpu_thermal: cpu-thermal { 36 cooling-maps { 37 map0 { 38 /* Corresponds to 500MHz */ 39 cooling-device = <&cpu0 5 5>, 40 <&cpu1 5 5>; 41 }; 42 map1 { 43 /* Corresponds to 200MHz */ 44 cooling-device = <&cpu0 8 8>, 45 <&cpu1 8 8>; 46 }; 47 }; 48 }; 49 }; 50}; 51 52&adc { 53 vdd-supply = <&ldo7_reg>; 54 assigned-clocks = <&cmu CLK_SCLK_TSADC>; 55 assigned-clock-rates = <6000000>; 56}; 57 58&cmu { 59 clocks = <&xusbxti>; 60}; 61 62&cpu0 { 63 cpu0-supply = <&buck2_reg>; 64}; 65 66&gpu { 67 mali-supply = <&buck3_reg>; 68 status = "okay"; 69}; 70 71&i2c_0 { 72 #address-cells = <1>; 73 #size-cells = <0>; 74 samsung,i2c-sda-delay = <100>; 75 samsung,i2c-slave-addr = <0x10>; 76 samsung,i2c-max-bus-freq = <100000>; 77 status = "okay"; 78 79 pmic@66 { 80 compatible = "samsung,s2mps14-pmic"; 81 interrupt-parent = <&gpx3>; 82 interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 83 pinctrl-names = "default"; 84 pinctrl-0 = <&s2mps14_irq>; 85 reg = <0x66>; 86 87 s2mps14_osc: clocks { 88 compatible = "samsung,s2mps14-clk"; 89 #clock-cells = <1>; 90 clock-output-names = "s2mps14_ap", "unused", 91 "s2mps14_bt"; 92 }; 93 94 regulators { 95 ldo1_reg: LDO1 { 96 /* VDD_ALIVE15x */ 97 regulator-name = "VLDO1_1.0V"; 98 regulator-min-microvolt = <1000000>; 99 regulator-max-microvolt = <1000000>; 100 regulator-always-on; 101 }; 102 103 ldo2_reg: LDO2 { 104 /* VDDQM176 ~ VDDQM185 */ 105 regulator-name = "VLDO2_1.2V"; 106 regulator-min-microvolt = <1200000>; 107 regulator-max-microvolt = <1200000>; 108 regulator-always-on; 109 }; 110 111 ldo3_reg: LDO3 { 112 /* 113 * VDD1_E106 ~ VDD1_E111 114 * DVDD_RTC_AP, DVDD_MMC2_AP 115 */ 116 regulator-name = "VLDO3_1.8V"; 117 regulator-min-microvolt = <1800000>; 118 regulator-max-microvolt = <1800000>; 119 regulator-always-on; 120 }; 121 122 ldo4_reg: LDO4 { 123 /* AVDD_PLL1120 ~ AVDD_PLL11201 */ 124 regulator-name = "VLDO4_1.8V"; 125 regulator-min-microvolt = <1800000>; 126 regulator-max-microvolt = <1800000>; 127 regulator-always-on; 128 }; 129 130 ldo5_reg: LDO5 { 131 /* VDDI_PLL_ISO141 ~ VDDI_PLL_ISO142 */ 132 regulator-name = "VLDO5_1.0V"; 133 regulator-min-microvolt = <1000000>; 134 regulator-max-microvolt = <1000000>; 135 regulator-always-on; 136 }; 137 138 ldo6_reg: LDO6 { 139 /* VDD_USB, VDD10_HSIC */ 140 regulator-name = "VLDO6_1.0V"; 141 regulator-min-microvolt = <1000000>; 142 regulator-max-microvolt = <1000000>; 143 regulator-always-on; 144 }; 145 146 ldo7_reg: LDO7 { 147 /* 148 * VDD18P, AVDD18_TS, AVDD18_HSIC, AVDD_PLL2, 149 * AVDD_ADC, AVDD_ABB_0, M4S_VDD18 150 */ 151 regulator-name = "VLDO7_1.8V"; 152 regulator-min-microvolt = <1800000>; 153 regulator-max-microvolt = <1800000>; 154 regulator-always-on; 155 }; 156 157 ldo8_reg: LDO8 { 158 /* AVDD33_UOTG */ 159 regulator-name = "VLDO8_3.0V"; 160 regulator-min-microvolt = <3000000>; 161 regulator-max-microvolt = <3000000>; 162 regulator-always-on; 163 }; 164 165 ldo9_reg: LDO9 { 166 /* VDDQ_E86 ~ VDDQ_E105*/ 167 regulator-name = "VLDO9_1.2V"; 168 regulator-min-microvolt = <1200000>; 169 regulator-max-microvolt = <1200000>; 170 regulator-always-on; 171 }; 172 173 ldo10_reg: LDO10 { 174 regulator-name = "VLDO10_1.0V"; 175 regulator-min-microvolt = <1000000>; 176 regulator-max-microvolt = <1000000>; 177 }; 178 179 ldo11_reg: LDO11 { 180 /* VDD74 ~ VDD75 */ 181 regulator-name = "VLDO11_1.8V"; 182 regulator-min-microvolt = <1800000>; 183 regulator-max-microvolt = <1800000>; 184 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; 185 }; 186 187 ldo12_reg: LDO12 { 188 /* VDD72 ~ VDD73 */ 189 regulator-name = "VLDO12_2.8V"; 190 regulator-min-microvolt = <2800000>; 191 regulator-max-microvolt = <2800000>; 192 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; 193 }; 194 195 ldo13_reg: LDO13 { 196 regulator-name = "VLDO13_2.8V"; 197 regulator-min-microvolt = <2800000>; 198 regulator-max-microvolt = <2800000>; 199 }; 200 201 ldo14_reg: LDO14 { 202 regulator-name = "VLDO14_2.7V"; 203 regulator-min-microvolt = <2700000>; 204 regulator-max-microvolt = <2700000>; 205 }; 206 207 ldo15_reg: LDO15 { 208 regulator-name = "VLDO_3.3V"; 209 regulator-min-microvolt = <3300000>; 210 regulator-max-microvolt = <3300000>; 211 }; 212 213 ldo16_reg: LDO16 { 214 regulator-name = "VLDO16_3.3V"; 215 regulator-min-microvolt = <3300000>; 216 regulator-max-microvolt = <3300000>; 217 }; 218 219 ldo17_reg: LDO17 { 220 regulator-name = "VLDO17_3.0V"; 221 regulator-min-microvolt = <3000000>; 222 regulator-max-microvolt = <3000000>; 223 }; 224 225 ldo18_reg: LDO18 { 226 /* DVDD_MMC2_AP */ 227 regulator-name = "VLDO18_2.8V"; 228 regulator-min-microvolt = <2800000>; 229 regulator-max-microvolt = <2800000>; 230 }; 231 232 ldo19_reg: LDO19 { 233 regulator-name = "VLDO19_1.8V"; 234 regulator-min-microvolt = <1800000>; 235 regulator-max-microvolt = <1800000>; 236 }; 237 238 ldo20_reg: LDO20 { 239 regulator-name = "VLDO20_1.8V"; 240 regulator-min-microvolt = <1800000>; 241 regulator-max-microvolt = <1800000>; 242 }; 243 244 ldo21_reg: LDO21 { 245 regulator-name = "VLDO21_1.25V"; 246 regulator-min-microvolt = <1250000>; 247 regulator-max-microvolt = <1250000>; 248 }; 249 250 ldo22_reg: LDO22 { 251 regulator-name = "VLDO22_1.2V"; 252 regulator-min-microvolt = <1200000>; 253 regulator-max-microvolt = <1200000>; 254 }; 255 256 ldo23_reg: LDO23 { 257 /* Xi2c3_SDA/SCL, Xi2c7_SDA/SCL, WLAN_SDIO */ 258 regulator-name = "VLDO23_1.8V"; 259 regulator-min-microvolt = <1800000>; 260 regulator-max-microvolt = <1800000>; 261 regulator-always-on; 262 }; 263 264 ldo24_reg: LDO24 { 265 regulator-name = "VLDO24_3.0V"; 266 regulator-min-microvolt = <3000000>; 267 regulator-max-microvolt = <3000000>; 268 }; 269 270 ldo25_reg: LDO25 { 271 regulator-name = "VLDO25_3.0V"; 272 regulator-min-microvolt = <3000000>; 273 regulator-max-microvolt = <3000000>; 274 }; 275 276 buck1_reg: BUCK1 { 277 /* VDD_MIF */ 278 regulator-name = "VBUCK1_1.0V"; 279 regulator-min-microvolt = <800000>; 280 regulator-max-microvolt = <1000000>; 281 regulator-always-on; 282 }; 283 284 buck2_reg: BUCK2 { 285 /* VDD_CPU */ 286 regulator-name = "VBUCK2_1.2V"; 287 regulator-min-microvolt = <850000>; 288 regulator-max-microvolt = <1200000>; 289 regulator-always-on; 290 }; 291 292 buck3_reg: BUCK3 { 293 /* VDD_G3D */ 294 regulator-name = "VBUCK3_1.0V"; 295 regulator-min-microvolt = <850000>; 296 regulator-max-microvolt = <1000000>; 297 regulator-always-on; 298 }; 299 300 buck4_reg: BUCK4 { 301 regulator-name = "VBUCK4_1.95V"; 302 regulator-min-microvolt = <1950000>; 303 regulator-max-microvolt = <1950000>; 304 regulator-always-on; 305 }; 306 307 buck5_reg: BUCK5 { 308 regulator-name = "VBUCK5_1.35V"; 309 regulator-min-microvolt = <1350000>; 310 regulator-max-microvolt = <1350000>; 311 regulator-always-on; 312 }; 313 }; 314 }; 315}; 316 317&mshc_0 { 318 non-removable; 319 cap-mmc-highspeed; 320 card-detect-delay = <200>; 321 vmmc-supply = <&ldo12_reg>; 322 clock-frequency = <100000000>; 323 max-frequency = <100000000>; 324 samsung,dw-mshc-ciu-div = <1>; 325 samsung,dw-mshc-sdr-timing = <0 1>; 326 samsung,dw-mshc-ddr-timing = <1 2>; 327 pinctrl-names = "default"; 328 pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>; 329 bus-width = <8>; 330 status = "okay"; 331}; 332 333&mshc_1 { 334 cap-sd-highspeed; 335 cap-sdio-irq; 336 disable-wp; 337 non-removable; 338 keep-power-in-suspend; 339 fifo-depth = <0x40>; 340 vqmmc-supply = <&ldo11_reg>; 341 /* 342 * Voltage negotiation is broken for the SDIO periph so we 343 * can't actually set the voltage here. 344 * vmmc-supply = <&ldo23_reg>; 345 */ 346 card-detect-delay = <500>; 347 clock-frequency = <100000000>; 348 max-frequency = <100000000>; 349 samsung,dw-mshc-ciu-div = <3>; 350 samsung,dw-mshc-sdr-timing = <0 1>; 351 samsung,dw-mshc-ddr-timing = <1 2>; 352 pinctrl-names = "default"; 353 pinctrl-0 = <&sd1_cmd &sd1_clk &sd1_bus1 &sd1_bus4 &wlanen>; 354 bus-width = <4>; 355 status = "okay"; 356}; 357 358&pinctrl_1 { 359 bten: bten { 360 samsung,pins ="gpx1-7"; 361 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 362 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 363 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>; 364 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_DOWN>; 365 }; 366 367 wlanen: wlanen { 368 samsung,pins = "gpx2-3"; 369 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 370 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 371 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV3>; 372 samsung,pin-val = <1>; 373 }; 374 375 s2mps14_irq: s2mps14-irq { 376 samsung,pins = "gpx3-5"; 377 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 378 }; 379 380 bthostwake: bthostwake { 381 samsung,pins = "gpx3-6"; 382 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 383 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 384 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>; 385 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>; 386 }; 387 388 btwake: btwake { 389 samsung,pins = "gpx3-7"; 390 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 391 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 392 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>; 393 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_DOWN>; 394 }; 395}; 396 397&rtc { 398 clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>; 399 clock-names = "rtc", "rtc_src"; 400 status = "okay"; 401}; 402 403&serial_0 { 404 assigned-clocks = <&cmu CLK_SCLK_UART0>; 405 assigned-clock-rates = <100000000>; 406 status = "okay"; 407 408 bluetooth { 409 compatible = "brcm,bcm4330-bt"; 410 pinctrl-names = "default"; 411 pinctrl-0 = <&bten &btwake &bthostwake>; 412 max-speed = <3000000>; 413 shutdown-gpios = <&gpx1 7 GPIO_ACTIVE_HIGH>; 414 device-wakeup-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 415 host-wakeup-gpios = <&gpx3 6 GPIO_ACTIVE_HIGH>; 416 clocks = <&s2mps14_osc S2MPS11_CLK_BT>; 417 }; 418}; 419 420&tmu { 421 status = "okay"; 422}; 423 424&xusbxti { 425 clock-frequency = <24000000>; 426}; 427