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 audio-routing = "HP", "HPOUT1L", 105 "HP", "HPOUT1R", 106 107 "SPK", "SPKOUTLN", 108 "SPK", "SPKOUTLP", 109 110 "RCV", "HPOUT2N", 111 "RCV", "HPOUT2P", 112 113 "LINE", "LINEOUT2N", 114 "LINE", "LINEOUT2P", 115 116 "IN1LP", "Main Mic", 117 "IN1LN", "Main Mic", 118 119 "IN1RP", "Headset Mic", 120 "IN1RN", "Headset Mic", 121 122 "IN2LN", "FM In", 123 "IN2RN", "FM In", 124 125 "Modem Out", "Modem TX", 126 "Modem RX", "Modem In", 127 128 "Bluetooth SPK", "TX", 129 "RX", "Bluetooth Mic"; 130 131 pinctrl-names = "default"; 132 pinctrl-0 = <&headset_det &earpath_sel>; 133 134 cpu { 135 sound-dai = <&i2s0>, <&bt_codec>; 136 }; 137 138 codec { 139 sound-dai = <&wm8994>; 140 }; 141 }; 142}; 143 144&aliases { 145 i2c8 = &i2c_fmradio; 146}; 147 148&pinctrl0 { 149 pinctrl-names = "default"; 150 pinctrl-0 = <&sleep_cfg>; 151 152 fm_i2c_pins: fm-i2c-pins { 153 samsung,pins = "gpd1-2", "gpd1-3"; 154 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 155 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 156 }; 157 158 headset_det: headset-det-pins { 159 samsung,pins = "gph0-6", "gph3-6"; 160 samsung,pin-function = <S5PV210_PIN_FUNC_F>; 161 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 162 }; 163 164 fm_irq: fm-irq-pins { 165 samsung,pins = "gpj2-4"; 166 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>; 167 samsung,pin-pud = <S5PV210_PIN_PULL_UP>; 168 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 169 }; 170 171 fm_rst: fm-rst-pins { 172 samsung,pins = "gpj2-5"; 173 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>; 174 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 175 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 176 }; 177 178 earpath_sel: earpath-sel-pins { 179 samsung,pins = "gpj2-6"; 180 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 181 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 182 }; 183 184 massmemory_en: massmemory-en-pins { 185 samsung,pins = "gpj2-7"; 186 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>; 187 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 188 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 189 }; 190 191 micbias_reg_ena: micbias-reg-ena-pins { 192 samsung,pins = "gpj4-2"; 193 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>; 194 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>; 195 }; 196 197 /* Based on CyanogenMod 3.0.101 kernel */ 198 sleep_cfg: sleep-state { 199 PIN_SLP(gpa0-0, PREV, NONE); 200 PIN_SLP(gpa0-1, PREV, NONE); 201 PIN_SLP(gpa0-2, PREV, NONE); 202 PIN_SLP(gpa0-3, OUT1, NONE); 203 PIN_SLP(gpa0-4, INPUT, DOWN); 204 PIN_SLP(gpa0-5, OUT0, NONE); 205 PIN_SLP(gpa0-6, INPUT, DOWN); 206 PIN_SLP(gpa0-7, OUT1, NONE); 207 208 PIN_SLP(gpa1-0, INPUT, DOWN); 209 PIN_SLP(gpa1-1, OUT0, NONE); 210 PIN_SLP(gpa1-2, INPUT, NONE); 211 PIN_SLP(gpa1-3, OUT0, NONE); 212 213 PIN_SLP(gpb-0, OUT0, NONE); 214 PIN_SLP(gpb-1, OUT1, NONE); 215 PIN_SLP(gpb-2, OUT0, NONE); 216 PIN_SLP(gpb-3, PREV, NONE); 217 PIN_SLP(gpb-4, INPUT, NONE); 218 PIN_SLP(gpb-5, PREV, NONE); 219 PIN_SLP(gpb-6, INPUT, DOWN); 220 PIN_SLP(gpb-7, OUT0, NONE); 221 222 PIN_SLP(gpc0-0, OUT0, NONE); 223 PIN_SLP(gpc0-1, INPUT, DOWN); 224 PIN_SLP(gpc0-2, OUT0, NONE); 225 PIN_SLP(gpc0-3, INPUT, NONE); 226 PIN_SLP(gpc0-4, OUT0, NONE); 227 228 PIN_SLP(gpc1-0, INPUT, DOWN); 229 PIN_SLP(gpc1-1, INPUT, DOWN); 230 PIN_SLP(gpc1-2, INPUT, DOWN); 231 PIN_SLP(gpc1-3, INPUT, DOWN); 232 PIN_SLP(gpc1-4, INPUT, DOWN); 233 234 PIN_SLP(gpd0-0, INPUT, DOWN); 235 PIN_SLP(gpd0-1, OUT0, NONE); 236 PIN_SLP(gpd0-2, INPUT, DOWN); 237 PIN_SLP(gpd0-3, INPUT, DOWN); 238 239 PIN_SLP(gpd1-0, INPUT, NONE); 240 PIN_SLP(gpd1-1, INPUT, NONE); 241 PIN_SLP(gpd1-2, INPUT, NONE); 242 PIN_SLP(gpd1-3, INPUT, NONE); 243 PIN_SLP(gpd1-4, INPUT, DOWN); 244 PIN_SLP(gpd1-5, INPUT, DOWN); 245 246 PIN_SLP(gpe0-0, INPUT, DOWN); 247 PIN_SLP(gpe0-1, INPUT, DOWN); 248 PIN_SLP(gpe0-2, INPUT, DOWN); 249 PIN_SLP(gpe0-3, INPUT, DOWN); 250 PIN_SLP(gpe0-4, INPUT, DOWN); 251 PIN_SLP(gpe0-5, INPUT, DOWN); 252 PIN_SLP(gpe0-6, INPUT, DOWN); 253 PIN_SLP(gpe0-7, INPUT, DOWN); 254 255 PIN_SLP(gpe1-0, INPUT, DOWN); 256 PIN_SLP(gpe1-1, INPUT, DOWN); 257 PIN_SLP(gpe1-2, INPUT, DOWN); 258 PIN_SLP(gpe1-3, OUT0, NONE); 259 PIN_SLP(gpe1-4, INPUT, DOWN); 260 261 PIN_SLP(gpf0-0, OUT0, NONE); 262 PIN_SLP(gpf0-1, OUT0, NONE); 263 PIN_SLP(gpf0-2, OUT0, NONE); 264 PIN_SLP(gpf0-3, OUT0, NONE); 265 PIN_SLP(gpf0-4, OUT0, NONE); 266 PIN_SLP(gpf0-5, OUT0, NONE); 267 PIN_SLP(gpf0-6, OUT0, NONE); 268 PIN_SLP(gpf0-7, OUT0, NONE); 269 270 PIN_SLP(gpf1-0, OUT0, NONE); 271 PIN_SLP(gpf1-1, OUT0, NONE); 272 PIN_SLP(gpf1-2, OUT0, NONE); 273 PIN_SLP(gpf1-3, OUT0, NONE); 274 PIN_SLP(gpf1-4, OUT0, NONE); 275 PIN_SLP(gpf1-5, OUT0, NONE); 276 PIN_SLP(gpf1-6, OUT0, NONE); 277 PIN_SLP(gpf1-7, OUT0, NONE); 278 279 PIN_SLP(gpf2-0, OUT0, NONE); 280 PIN_SLP(gpf2-1, OUT0, NONE); 281 PIN_SLP(gpf2-2, OUT0, NONE); 282 PIN_SLP(gpf2-3, OUT0, NONE); 283 PIN_SLP(gpf2-4, OUT0, NONE); 284 PIN_SLP(gpf2-5, OUT0, NONE); 285 PIN_SLP(gpf2-6, OUT0, NONE); 286 PIN_SLP(gpf2-7, OUT0, NONE); 287 288 PIN_SLP(gpf3-0, OUT0, NONE); 289 PIN_SLP(gpf3-1, OUT0, NONE); 290 PIN_SLP(gpf3-2, OUT0, NONE); 291 PIN_SLP(gpf3-3, OUT0, NONE); 292 PIN_SLP(gpf3-4, PREV, NONE); 293 PIN_SLP(gpf3-5, INPUT, DOWN); 294 295 PIN_SLP(gpg0-0, OUT0, NONE); 296 PIN_SLP(gpg0-1, INPUT, NONE); 297 PIN_SLP(gpg0-2, INPUT, NONE); 298 PIN_SLP(gpg0-3, INPUT, NONE); 299 PIN_SLP(gpg0-4, INPUT, NONE); 300 PIN_SLP(gpg0-5, INPUT, NONE); 301 PIN_SLP(gpg0-6, INPUT, NONE); 302 303 PIN_SLP(gpg1-0, OUT0, NONE); 304 PIN_SLP(gpg1-1, OUT1, NONE); 305 PIN_SLP(gpg1-2, PREV, NONE); 306 PIN_SLP(gpg1-3, OUT1, NONE); 307 PIN_SLP(gpg1-4, OUT1, NONE); 308 PIN_SLP(gpg1-5, OUT1, NONE); 309 PIN_SLP(gpg1-6, OUT1, NONE); 310 311 PIN_SLP(gpg2-0, OUT0, NONE); 312 PIN_SLP(gpg2-1, OUT0, NONE); 313 PIN_SLP(gpg2-2, INPUT, NONE); 314 PIN_SLP(gpg2-3, OUT0, NONE); 315 PIN_SLP(gpg2-4, OUT0, NONE); 316 PIN_SLP(gpg2-5, OUT0, NONE); 317 PIN_SLP(gpg2-6, OUT0, NONE); 318 319 PIN_SLP(gpg3-0, OUT1, NONE); 320 PIN_SLP(gpg3-1, OUT0, NONE); 321 PIN_SLP(gpg3-2, INPUT, NONE); 322 PIN_SLP(gpg3-3, INPUT, DOWN); 323 PIN_SLP(gpg3-4, OUT0, NONE); 324 PIN_SLP(gpg3-5, OUT0, NONE); 325 PIN_SLP(gpg3-6, INPUT, DOWN); 326 327 PIN_SLP(gpi-0, PREV, NONE); 328 PIN_SLP(gpi-1, INPUT, DOWN); 329 PIN_SLP(gpi-2, PREV, NONE); 330 PIN_SLP(gpi-3, PREV, NONE); 331 PIN_SLP(gpi-4, PREV, NONE); 332 PIN_SLP(gpi-5, INPUT, DOWN); 333 PIN_SLP(gpi-6, INPUT, DOWN); 334 335 PIN_SLP(gpj0-0, INPUT, NONE); 336 PIN_SLP(gpj0-1, INPUT, NONE); 337 PIN_SLP(gpj0-2, INPUT, NONE); 338 PIN_SLP(gpj0-3, INPUT, NONE); 339 PIN_SLP(gpj0-4, INPUT, NONE); 340 PIN_SLP(gpj0-5, INPUT, DOWN); 341 PIN_SLP(gpj0-6, OUT0, NONE); 342 PIN_SLP(gpj0-7, INPUT, NONE); 343 344 PIN_SLP(gpj1-0, INPUT, DOWN); 345 PIN_SLP(gpj1-1, OUT0, NONE); 346 PIN_SLP(gpj1-2, INPUT, DOWN); 347 PIN_SLP(gpj1-3, PREV, NONE); 348 PIN_SLP(gpj1-4, PREV, NONE); 349 PIN_SLP(gpj1-5, OUT0, NONE); 350 351 PIN_SLP(gpj2-0, INPUT, DOWN); 352 PIN_SLP(gpj2-1, INPUT, DOWN); 353 PIN_SLP(gpj2-2, OUT0, NONE); 354 PIN_SLP(gpj2-3, INPUT, DOWN); 355 PIN_SLP(gpj2-4, INPUT, UP); 356 PIN_SLP(gpj2-5, PREV, NONE); 357 PIN_SLP(gpj2-6, PREV, NONE); 358 PIN_SLP(gpj2-7, OUT1, NONE); 359 360 PIN_SLP(gpj3-0, INPUT, NONE); 361 PIN_SLP(gpj3-1, INPUT, NONE); 362 PIN_SLP(gpj3-2, OUT0, NONE); 363 PIN_SLP(gpj3-3, INPUT, DOWN); 364 PIN_SLP(gpj3-4, INPUT, NONE); 365 PIN_SLP(gpj3-5, INPUT, NONE); 366 PIN_SLP(gpj3-6, INPUT, NONE); 367 PIN_SLP(gpj3-7, INPUT, NONE); 368 369 PIN_SLP(gpj4-0, INPUT, NONE); 370 PIN_SLP(gpj4-1, INPUT, DOWN); 371 PIN_SLP(gpj4-2, PREV, NONE); 372 PIN_SLP(gpj4-3, INPUT, NONE); 373 PIN_SLP(gpj4-4, INPUT, DOWN); 374 375 PIN_SLP(mp01-0, INPUT, DOWN); 376 PIN_SLP(mp01-1, OUT0, NONE); 377 PIN_SLP(mp01-2, INPUT, DOWN); 378 PIN_SLP(mp01-3, INPUT, DOWN); 379 PIN_SLP(mp01-4, OUT1, NONE); 380 PIN_SLP(mp01-5, INPUT, DOWN); 381 PIN_SLP(mp01-6, INPUT, DOWN); 382 PIN_SLP(mp01-7, INPUT, DOWN); 383 384 PIN_SLP(mp02-0, INPUT, DOWN); 385 PIN_SLP(mp02-1, INPUT, DOWN); 386 PIN_SLP(mp02-2, INPUT, NONE); 387 PIN_SLP(mp02-3, INPUT, DOWN); 388 389 PIN_SLP(mp03-0, INPUT, DOWN); 390 PIN_SLP(mp03-1, INPUT, DOWN); 391 PIN_SLP(mp03-2, OUT1, NONE); 392 PIN_SLP(mp03-3, OUT0, NONE); 393 PIN_SLP(mp03-4, INPUT, NONE); 394 PIN_SLP(mp03-5, OUT1, NONE); 395 PIN_SLP(mp03-6, INPUT, DOWN); 396 PIN_SLP(mp03-7, INPUT, DOWN); 397 398 PIN_SLP(mp04-0, INPUT, DOWN); 399 PIN_SLP(mp04-1, OUT0, NONE); 400 PIN_SLP(mp04-2, INPUT, DOWN); 401 PIN_SLP(mp04-3, OUT0, NONE); 402 PIN_SLP(mp04-4, INPUT, DOWN); 403 PIN_SLP(mp04-5, INPUT, DOWN); 404 PIN_SLP(mp04-6, OUT0, NONE); 405 PIN_SLP(mp04-7, INPUT, DOWN); 406 407 PIN_SLP(mp05-0, INPUT, NONE); 408 PIN_SLP(mp05-1, INPUT, NONE); 409 PIN_SLP(mp05-2, INPUT, NONE); 410 PIN_SLP(mp05-3, INPUT, NONE); 411 PIN_SLP(mp05-4, INPUT, DOWN); 412 PIN_SLP(mp05-5, OUT0, NONE); 413 PIN_SLP(mp05-6, INPUT, DOWN); 414 PIN_SLP(mp05-7, PREV, NONE); 415 416 PIN_SLP(mp06-0, INPUT, DOWN); 417 PIN_SLP(mp06-1, INPUT, DOWN); 418 PIN_SLP(mp06-2, INPUT, DOWN); 419 PIN_SLP(mp06-3, INPUT, DOWN); 420 PIN_SLP(mp06-4, INPUT, DOWN); 421 PIN_SLP(mp06-5, INPUT, DOWN); 422 PIN_SLP(mp06-6, INPUT, DOWN); 423 PIN_SLP(mp06-7, INPUT, DOWN); 424 425 PIN_SLP(mp07-0, INPUT, DOWN); 426 PIN_SLP(mp07-1, INPUT, DOWN); 427 PIN_SLP(mp07-2, INPUT, DOWN); 428 PIN_SLP(mp07-3, INPUT, DOWN); 429 PIN_SLP(mp07-4, INPUT, DOWN); 430 PIN_SLP(mp07-5, INPUT, DOWN); 431 PIN_SLP(mp07-6, INPUT, DOWN); 432 PIN_SLP(mp07-7, INPUT, DOWN); 433 }; 434}; 435 436&sdhci0 { 437 bus-width = <4>; 438 non-removable; 439 mmc-pwrseq = <&nand_pwrseq>; 440 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; 441 pinctrl-names = "default"; 442 status = "okay"; 443 444 assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>; 445 assigned-clock-rates = <0>, <52000000>; 446 assigned-clock-parents = <&clocks MOUT_MPLL>; 447}; 448