1// SPDX-License-Identifier: GPL-2.0 2 3/dts-v1/; 4#include <dt-bindings/gpio/gpio.h> 5#include <dt-bindings/input/input.h> 6#include "s5pv210-aries.dtsi" 7 8/ { 9 model = "Samsung Galaxy S1 (GT-I9000) based on S5PV210"; 10 compatible = "samsung,galaxys", "samsung,aries", "samsung,s5pv210"; 11 chassis-type = "handset"; 12 13 chosen { 14 stdout-path = &uart2; 15 }; 16 17 nand_pwrseq: nand-pwrseq { 18 compatible = "mmc-pwrseq-simple"; 19 reset-gpios = <&gpj2 7 GPIO_ACTIVE_LOW>; 20 pinctrl-names = "default"; 21 pinctrl-0 = <&massmemory_en>; 22 }; 23 24 gpio-keys { 25 compatible = "gpio-keys"; 26 27 key-power { 28 label = "power"; 29 gpios = <&gph2 6 GPIO_ACTIVE_LOW>; 30 linux,code = <KEY_POWER>; 31 wakeup-source; 32 }; 33 34 key-vol-down { 35 label = "volume_down"; 36 gpios = <&gph3 1 GPIO_ACTIVE_LOW>; 37 linux,code = <KEY_VOLUMEDOWN>; 38 }; 39 40 key-vol-up { 41 label = "volume_up"; 42 gpios = <&gph3 2 GPIO_ACTIVE_LOW>; 43 linux,code = <KEY_VOLUMEUP>; 44 }; 45 46 key-home { 47 label = "home"; 48 gpios = <&gph3 5 GPIO_ACTIVE_LOW>; 49 linux,code = <KEY_HOME>; 50 wakeup-source; 51 }; 52 }; 53 54 i2c_fmradio: i2c-gpio-8 { 55 compatible = "i2c-gpio"; 56 sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 57 scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 58 i2c-gpio,delay-us = <2>; 59 #address-cells = <1>; 60 #size-cells = <0>; 61 62 pinctrl-names = "default"; 63 pinctrl-0 = <&fm_i2c_pins>; 64 65 fmradio@10 { 66 compatible = "silabs,si470x"; 67 reg = <0x10>; 68 interrupt-parent = <&gpj2>; 69 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 70 reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>; 71 72 pinctrl-names = "default"; 73 pinctrl-0 = <&fm_irq &fm_rst>; 74 }; 75 }; 76 77 micbias_reg: regulator-fixed-3 { 78 compatible = "regulator-fixed"; 79 regulator-name = "MICBIAS"; 80 gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>; 81 enable-active-high; 82 83 pinctrl-names = "default"; 84 pinctrl-0 = <&micbias_reg_ena>; 85 }; 86 87 sound { 88 compatible = "samsung,aries-wm8994"; 89 90 model = "Aries"; 91 92 extcon = <&fsa9480>; 93 94 main-micbias-supply = <&micbias_reg>; 95 headset-micbias-supply = <&micbias_reg>; 96 97 earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>; 98 99 io-channels = <&adc 3>; 100 io-channel-names = "headset-detect"; 101 headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_LOW>; 102 headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>; 103 104 samsung,audio-routing = 105 "HP", "HPOUT1L", 106 "HP", "HPOUT1R", 107 108 "SPK", "SPKOUTLN", 109 "SPK", "SPKOUTLP", 110 111 "RCV", "HPOUT2N", 112 "RCV", "HPOUT2P", 113 114 "LINE", "LINEOUT2N", 115 "LINE", "LINEOUT2P", 116 117 "IN1LP", "Main Mic", 118 "IN1LN", "Main Mic", 119 120 "IN1RP", "Headset Mic", 121 "IN1RN", "Headset Mic", 122 123 "IN2LN", "FM In", 124 "IN2RN", "FM In", 125 126 "Modem Out", "Modem TX", 127 "Modem RX", "Modem In", 128 129 "Bluetooth SPK", "TX", 130 "RX", "Bluetooth Mic"; 131 132 pinctrl-names = "default"; 133 pinctrl-0 = <&headset_det &earpath_sel>; 134 135 cpu { 136 sound-dai = <&i2s0>, <&bt_codec>; 137 }; 138 139 codec { 140 sound-dai = <&wm8994>; 141 }; 142 }; 143}; 144 145&aliases { 146 i2c8 = &i2c_fmradio; 147}; 148 149&pinctrl0 { 150 pinctrl-names = "default"; 151 pinctrl-0 = <&sleep_cfg>; 152 153 fm_i2c_pins: fm-i2c-pins { 154 samsung,pins = "gpd1-2", "gpd1-3"; 155 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 156 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 157 }; 158 159 headset_det: headset-det-pins { 160 samsung,pins = "gph0-6", "gph3-6"; 161 samsung,pin-function = <S5PV210_PIN_FUNC_F>; 162 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 163 }; 164 165 fm_irq: fm-irq-pins { 166 samsung,pins = "gpj2-4"; 167 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>; 168 samsung,pin-pud = <S5PV210_PIN_PULL_UP>; 169 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 170 }; 171 172 fm_rst: fm-rst-pins { 173 samsung,pins = "gpj2-5"; 174 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>; 175 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 176 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 177 }; 178 179 earpath_sel: earpath-sel-pins { 180 samsung,pins = "gpj2-6"; 181 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 182 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 183 }; 184 185 massmemory_en: massmemory-en-pins { 186 samsung,pins = "gpj2-7"; 187 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>; 188 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 189 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 190 }; 191 192 micbias_reg_ena: micbias-reg-ena-pins { 193 samsung,pins = "gpj4-2"; 194 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 195 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 196 }; 197 198 /* Based on CyanogenMod 3.0.101 kernel */ 199 sleep_cfg: sleep-state { 200 PIN_SLP(gpa0-0, PREV, NONE); 201 PIN_SLP(gpa0-1, PREV, NONE); 202 PIN_SLP(gpa0-2, PREV, NONE); 203 PIN_SLP(gpa0-3, OUT1, NONE); 204 PIN_SLP(gpa0-4, INPUT, DOWN); 205 PIN_SLP(gpa0-5, OUT0, NONE); 206 PIN_SLP(gpa0-6, INPUT, DOWN); 207 PIN_SLP(gpa0-7, OUT1, NONE); 208 209 PIN_SLP(gpa1-0, INPUT, DOWN); 210 PIN_SLP(gpa1-1, OUT0, NONE); 211 PIN_SLP(gpa1-2, INPUT, NONE); 212 PIN_SLP(gpa1-3, OUT0, NONE); 213 214 PIN_SLP(gpb-0, OUT0, NONE); 215 PIN_SLP(gpb-1, OUT1, NONE); 216 PIN_SLP(gpb-2, OUT0, NONE); 217 PIN_SLP(gpb-3, PREV, NONE); 218 PIN_SLP(gpb-4, INPUT, NONE); 219 PIN_SLP(gpb-5, PREV, NONE); 220 PIN_SLP(gpb-6, INPUT, DOWN); 221 PIN_SLP(gpb-7, OUT0, NONE); 222 223 PIN_SLP(gpc0-0, OUT0, NONE); 224 PIN_SLP(gpc0-1, INPUT, DOWN); 225 PIN_SLP(gpc0-2, OUT0, NONE); 226 PIN_SLP(gpc0-3, INPUT, NONE); 227 PIN_SLP(gpc0-4, OUT0, NONE); 228 229 PIN_SLP(gpc1-0, INPUT, DOWN); 230 PIN_SLP(gpc1-1, INPUT, DOWN); 231 PIN_SLP(gpc1-2, INPUT, DOWN); 232 PIN_SLP(gpc1-3, INPUT, DOWN); 233 PIN_SLP(gpc1-4, INPUT, DOWN); 234 235 PIN_SLP(gpd0-0, INPUT, DOWN); 236 PIN_SLP(gpd0-1, OUT0, NONE); 237 PIN_SLP(gpd0-2, INPUT, DOWN); 238 PIN_SLP(gpd0-3, INPUT, DOWN); 239 240 PIN_SLP(gpd1-0, INPUT, NONE); 241 PIN_SLP(gpd1-1, INPUT, NONE); 242 PIN_SLP(gpd1-2, INPUT, NONE); 243 PIN_SLP(gpd1-3, INPUT, NONE); 244 PIN_SLP(gpd1-4, INPUT, DOWN); 245 PIN_SLP(gpd1-5, INPUT, DOWN); 246 247 PIN_SLP(gpe0-0, INPUT, DOWN); 248 PIN_SLP(gpe0-1, INPUT, DOWN); 249 PIN_SLP(gpe0-2, INPUT, DOWN); 250 PIN_SLP(gpe0-3, INPUT, DOWN); 251 PIN_SLP(gpe0-4, INPUT, DOWN); 252 PIN_SLP(gpe0-5, INPUT, DOWN); 253 PIN_SLP(gpe0-6, INPUT, DOWN); 254 PIN_SLP(gpe0-7, INPUT, DOWN); 255 256 PIN_SLP(gpe1-0, INPUT, DOWN); 257 PIN_SLP(gpe1-1, INPUT, DOWN); 258 PIN_SLP(gpe1-2, INPUT, DOWN); 259 PIN_SLP(gpe1-3, OUT0, NONE); 260 PIN_SLP(gpe1-4, INPUT, DOWN); 261 262 PIN_SLP(gpf0-0, OUT0, NONE); 263 PIN_SLP(gpf0-1, OUT0, NONE); 264 PIN_SLP(gpf0-2, OUT0, NONE); 265 PIN_SLP(gpf0-3, OUT0, NONE); 266 PIN_SLP(gpf0-4, OUT0, NONE); 267 PIN_SLP(gpf0-5, OUT0, NONE); 268 PIN_SLP(gpf0-6, OUT0, NONE); 269 PIN_SLP(gpf0-7, OUT0, NONE); 270 271 PIN_SLP(gpf1-0, OUT0, NONE); 272 PIN_SLP(gpf1-1, OUT0, NONE); 273 PIN_SLP(gpf1-2, OUT0, NONE); 274 PIN_SLP(gpf1-3, OUT0, NONE); 275 PIN_SLP(gpf1-4, OUT0, NONE); 276 PIN_SLP(gpf1-5, OUT0, NONE); 277 PIN_SLP(gpf1-6, OUT0, NONE); 278 PIN_SLP(gpf1-7, OUT0, NONE); 279 280 PIN_SLP(gpf2-0, OUT0, NONE); 281 PIN_SLP(gpf2-1, OUT0, NONE); 282 PIN_SLP(gpf2-2, OUT0, NONE); 283 PIN_SLP(gpf2-3, OUT0, NONE); 284 PIN_SLP(gpf2-4, OUT0, NONE); 285 PIN_SLP(gpf2-5, OUT0, NONE); 286 PIN_SLP(gpf2-6, OUT0, NONE); 287 PIN_SLP(gpf2-7, OUT0, NONE); 288 289 PIN_SLP(gpf3-0, OUT0, NONE); 290 PIN_SLP(gpf3-1, OUT0, NONE); 291 PIN_SLP(gpf3-2, OUT0, NONE); 292 PIN_SLP(gpf3-3, OUT0, NONE); 293 PIN_SLP(gpf3-4, PREV, NONE); 294 PIN_SLP(gpf3-5, INPUT, DOWN); 295 296 PIN_SLP(gpg0-0, OUT0, NONE); 297 PIN_SLP(gpg0-1, INPUT, NONE); 298 PIN_SLP(gpg0-2, INPUT, NONE); 299 PIN_SLP(gpg0-3, INPUT, NONE); 300 PIN_SLP(gpg0-4, INPUT, NONE); 301 PIN_SLP(gpg0-5, INPUT, NONE); 302 PIN_SLP(gpg0-6, INPUT, NONE); 303 304 PIN_SLP(gpg1-0, OUT0, NONE); 305 PIN_SLP(gpg1-1, OUT1, NONE); 306 PIN_SLP(gpg1-2, PREV, NONE); 307 PIN_SLP(gpg1-3, OUT1, NONE); 308 PIN_SLP(gpg1-4, OUT1, NONE); 309 PIN_SLP(gpg1-5, OUT1, NONE); 310 PIN_SLP(gpg1-6, OUT1, NONE); 311 312 PIN_SLP(gpg2-0, OUT0, NONE); 313 PIN_SLP(gpg2-1, OUT0, NONE); 314 PIN_SLP(gpg2-2, INPUT, NONE); 315 PIN_SLP(gpg2-3, OUT0, NONE); 316 PIN_SLP(gpg2-4, OUT0, NONE); 317 PIN_SLP(gpg2-5, OUT0, NONE); 318 PIN_SLP(gpg2-6, OUT0, NONE); 319 320 PIN_SLP(gpg3-0, OUT1, NONE); 321 PIN_SLP(gpg3-1, OUT0, NONE); 322 PIN_SLP(gpg3-2, INPUT, NONE); 323 PIN_SLP(gpg3-3, INPUT, DOWN); 324 PIN_SLP(gpg3-4, OUT0, NONE); 325 PIN_SLP(gpg3-5, OUT0, NONE); 326 PIN_SLP(gpg3-6, INPUT, DOWN); 327 328 PIN_SLP(gpi-0, PREV, NONE); 329 PIN_SLP(gpi-1, INPUT, DOWN); 330 PIN_SLP(gpi-2, PREV, NONE); 331 PIN_SLP(gpi-3, PREV, NONE); 332 PIN_SLP(gpi-4, PREV, NONE); 333 PIN_SLP(gpi-5, INPUT, DOWN); 334 PIN_SLP(gpi-6, INPUT, DOWN); 335 336 PIN_SLP(gpj0-0, INPUT, NONE); 337 PIN_SLP(gpj0-1, INPUT, NONE); 338 PIN_SLP(gpj0-2, INPUT, NONE); 339 PIN_SLP(gpj0-3, INPUT, NONE); 340 PIN_SLP(gpj0-4, INPUT, NONE); 341 PIN_SLP(gpj0-5, INPUT, DOWN); 342 PIN_SLP(gpj0-6, OUT0, NONE); 343 PIN_SLP(gpj0-7, INPUT, NONE); 344 345 PIN_SLP(gpj1-0, INPUT, DOWN); 346 PIN_SLP(gpj1-1, OUT0, NONE); 347 PIN_SLP(gpj1-2, INPUT, DOWN); 348 PIN_SLP(gpj1-3, PREV, NONE); 349 PIN_SLP(gpj1-4, PREV, NONE); 350 PIN_SLP(gpj1-5, OUT0, NONE); 351 352 PIN_SLP(gpj2-0, INPUT, DOWN); 353 PIN_SLP(gpj2-1, INPUT, DOWN); 354 PIN_SLP(gpj2-2, OUT0, NONE); 355 PIN_SLP(gpj2-3, INPUT, DOWN); 356 PIN_SLP(gpj2-4, INPUT, UP); 357 PIN_SLP(gpj2-5, PREV, NONE); 358 PIN_SLP(gpj2-6, PREV, NONE); 359 PIN_SLP(gpj2-7, OUT1, NONE); 360 361 PIN_SLP(gpj3-0, INPUT, NONE); 362 PIN_SLP(gpj3-1, INPUT, NONE); 363 PIN_SLP(gpj3-2, OUT0, NONE); 364 PIN_SLP(gpj3-3, INPUT, DOWN); 365 PIN_SLP(gpj3-4, INPUT, NONE); 366 PIN_SLP(gpj3-5, INPUT, NONE); 367 PIN_SLP(gpj3-6, INPUT, NONE); 368 PIN_SLP(gpj3-7, INPUT, NONE); 369 370 PIN_SLP(gpj4-0, INPUT, NONE); 371 PIN_SLP(gpj4-1, INPUT, DOWN); 372 PIN_SLP(gpj4-2, PREV, NONE); 373 PIN_SLP(gpj4-3, INPUT, NONE); 374 PIN_SLP(gpj4-4, INPUT, DOWN); 375 376 PIN_SLP(mp01-0, INPUT, DOWN); 377 PIN_SLP(mp01-1, OUT0, NONE); 378 PIN_SLP(mp01-2, INPUT, DOWN); 379 PIN_SLP(mp01-3, INPUT, DOWN); 380 PIN_SLP(mp01-4, OUT1, NONE); 381 PIN_SLP(mp01-5, INPUT, DOWN); 382 PIN_SLP(mp01-6, INPUT, DOWN); 383 PIN_SLP(mp01-7, INPUT, DOWN); 384 385 PIN_SLP(mp02-0, INPUT, DOWN); 386 PIN_SLP(mp02-1, INPUT, DOWN); 387 PIN_SLP(mp02-2, INPUT, NONE); 388 PIN_SLP(mp02-3, INPUT, DOWN); 389 390 PIN_SLP(mp03-0, INPUT, DOWN); 391 PIN_SLP(mp03-1, INPUT, DOWN); 392 PIN_SLP(mp03-2, OUT1, NONE); 393 PIN_SLP(mp03-3, OUT0, NONE); 394 PIN_SLP(mp03-4, INPUT, NONE); 395 PIN_SLP(mp03-5, OUT1, NONE); 396 PIN_SLP(mp03-6, INPUT, DOWN); 397 PIN_SLP(mp03-7, INPUT, DOWN); 398 399 PIN_SLP(mp04-0, INPUT, DOWN); 400 PIN_SLP(mp04-1, OUT0, NONE); 401 PIN_SLP(mp04-2, INPUT, DOWN); 402 PIN_SLP(mp04-3, OUT0, NONE); 403 PIN_SLP(mp04-4, INPUT, DOWN); 404 PIN_SLP(mp04-5, INPUT, DOWN); 405 PIN_SLP(mp04-6, OUT0, NONE); 406 PIN_SLP(mp04-7, INPUT, DOWN); 407 408 PIN_SLP(mp05-0, INPUT, NONE); 409 PIN_SLP(mp05-1, INPUT, NONE); 410 PIN_SLP(mp05-2, INPUT, NONE); 411 PIN_SLP(mp05-3, INPUT, NONE); 412 PIN_SLP(mp05-4, INPUT, DOWN); 413 PIN_SLP(mp05-5, OUT0, NONE); 414 PIN_SLP(mp05-6, INPUT, DOWN); 415 PIN_SLP(mp05-7, PREV, NONE); 416 417 PIN_SLP(mp06-0, INPUT, DOWN); 418 PIN_SLP(mp06-1, INPUT, DOWN); 419 PIN_SLP(mp06-2, INPUT, DOWN); 420 PIN_SLP(mp06-3, INPUT, DOWN); 421 PIN_SLP(mp06-4, INPUT, DOWN); 422 PIN_SLP(mp06-5, INPUT, DOWN); 423 PIN_SLP(mp06-6, INPUT, DOWN); 424 PIN_SLP(mp06-7, INPUT, DOWN); 425 426 PIN_SLP(mp07-0, INPUT, DOWN); 427 PIN_SLP(mp07-1, INPUT, DOWN); 428 PIN_SLP(mp07-2, INPUT, DOWN); 429 PIN_SLP(mp07-3, INPUT, DOWN); 430 PIN_SLP(mp07-4, INPUT, DOWN); 431 PIN_SLP(mp07-5, INPUT, DOWN); 432 PIN_SLP(mp07-6, INPUT, DOWN); 433 PIN_SLP(mp07-7, INPUT, DOWN); 434 }; 435}; 436 437&sdhci0 { 438 bus-width = <4>; 439 non-removable; 440 mmc-pwrseq = <&nand_pwrseq>; 441 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; 442 pinctrl-names = "default"; 443 status = "okay"; 444 445 assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>; 446 assigned-clock-rates = <0>, <52000000>; 447 assigned-clock-parents = <&clocks MOUT_MPLL>; 448}; 449