Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'samsung-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt

From Kukjin Kim:
Samsung DT 2nd updates for v3.14
- add DMA controller, SPI, and TMU DT nodes for exynos5420
- add PWM DT nodes for exynos5250 and exynos5420
- drop interrupt controller properties from MCT nodes
because MCT is not an interrupt controller
- move MCT nodes to exynos4x12 from board because it is
a per-processor interrupt and same 4212 and 4412
- use one cell for MCT interrupt map for exynos4 SoCs
- update Exynos MCT DT bindings accordingly
- fix missing spaces after labels for exynos
- fix mmc status property for exynos5250-snow
- add MCLK for codec for exynos5250-smdk5250
- disable SPI and I2C by default for exynos5250 SoC
and enable into requiring some boards
- rename cros5250-common to exynos5250-cros-common

* tag 'samsung-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (27 commits)
ARM: dts: Rename Exynos5250 ChromeOS common file to have exynos prefix
ARM: dts: Disable I2C controllers by default on Exynos5250
ARM: dts: Leave Exynos5250 SPI controller disabled by default
ARM: dts: Add CODEC MCLK for SMDK5250
ARM: dts: Add device nodes for TMU blocks for exynos5420
ARM: dts: Fix status property of mmc nodes for snow board
ARM: dts: Fix missing spaces after labels for exynos
ARM: dts: Simplify MCT interrupt map for exynos4 SoCs
ARM: dts: Move MCT node to exynos4x12.dtsi
ARM: dts: Drop interrupt controller properties from MCT nodes for exynos4 SoCs
Documentation: devicetree: Update Exynos MCT bindings description
ARM: dts: add pwm DT nodes to Exynos5250 and Exynos5420
ARM: dts: Add SPI nodes to the exynos5420 device tree file
ARM: dts: Add DMA controller node info on Exynos5420
ARM: dts: Use MSHC controller for eMMC memory for exynos4412-trats2
ARM: dts: Fix definition of MSHC device tree nodes for exynos4x12
ARM: dts: add clock provider for mshc node for Exynos4412 SOC
clk: samsung: exynos4: Fix definition of div_mmc_pre4 divider
ARM: dts: Fix exynos5250-snow's search key to be L_META
ARM: dts: Add the missing "\" key in non-US keyboards for exynos5250-snow
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+348 -189
+37 -17
Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
··· 31 31 7: .. 32 32 i: Local Timer Interrupt n 33 33 34 - Example 1: In this example, the system uses only the first global timer 35 - interrupt generated by MCT and the remaining three global timer 36 - interrupts are unused. Two local timer interrupts have been 37 - specified. 34 + For MCT block that uses a per-processor interrupt for local timers, such 35 + as ones compatible with "samsung,exynos4412-mct", only one local timer 36 + interrupt might be specified, meaning that all local timers use the same 37 + per processor interrupt. 38 + 39 + Example 1: In this example, the IP contains two local timers, using separate 40 + interrupts, so two local timer interrupts have been specified, 41 + in addition to four global timer interrupts. 38 42 39 43 mct@10050000 { 40 44 compatible = "samsung,exynos4210-mct"; 41 45 reg = <0x10050000 0x800>; 42 - interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, 46 + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, 43 47 <0 42 0>, <0 48 0>; 44 48 }; 45 49 46 - Example 2: In this example, the MCT global and local timer interrupts are 47 - connected to two separate interrupt controllers. Hence, an 48 - interrupt-map is created to map the interrupts to the respective 49 - interrupt controllers. 50 + Example 2: In this example, the timer interrupts are connected to two separate 51 + interrupt controllers. Hence, an interrupt-map is created to map 52 + the interrupts to the respective interrupt controllers. 50 53 51 54 mct@101C0000 { 52 55 compatible = "samsung,exynos4210-mct"; 53 56 reg = <0x101C0000 0x800>; 54 - interrupt-controller; 55 - #interrups-cells = <2>; 56 57 interrupt-parent = <&mct_map>; 57 - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 58 - <4 0>, <5 0>; 58 + interrupts = <0>, <1>, <2>, <3>, <4>, <5>; 59 59 60 60 mct_map: mct-map { 61 - #interrupt-cells = <2>; 61 + #interrupt-cells = <1>; 62 62 #address-cells = <0>; 63 63 #size-cells = <0>; 64 - interrupt-map = <0x0 0 &combiner 23 3>, 65 - <0x4 0 &gic 0 120 0>, 66 - <0x5 0 &gic 0 121 0>; 64 + interrupt-map = <0 &gic 0 57 0>, 65 + <1 &gic 0 69 0>, 66 + <2 &combiner 12 6>, 67 + <3 &combiner 12 7>, 68 + <4 &gic 0 42 0>, 69 + <5 &gic 0 48 0>; 67 70 }; 71 + }; 72 + 73 + Example 3: In this example, the IP contains four local timers, but using 74 + a per-processor interrupt to handle them. Either all the local 75 + timer interrupts can be specified, with the same interrupt specifier 76 + value or just the first one. 77 + 78 + mct@10050000 { 79 + compatible = "samsung,exynos4412-mct"; 80 + reg = <0x10050000 0x800>; 81 + 82 + /* Both ways are possible in this case. Either: */ 83 + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, 84 + <0 42 0>; 85 + /* or: */ 86 + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, 87 + <0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>; 68 88 };
+9 -16
arch/arm/boot/dts/cros5250-common.dtsi arch/arm/boot/dts/exynos5250-cros-common.dtsi
··· 37 37 }; 38 38 39 39 i2c@12C60000 { 40 + status = "okay"; 40 41 samsung,i2c-sda-delay = <100>; 41 42 samsung,i2c-max-bus-freq = <378000>; 42 43 ··· 186 185 }; 187 186 188 187 i2c@12C70000 { 188 + status = "okay"; 189 189 samsung,i2c-sda-delay = <100>; 190 190 samsung,i2c-max-bus-freq = <378000>; 191 191 ··· 200 198 }; 201 199 202 200 i2c@12C80000 { 201 + status = "okay"; 203 202 samsung,i2c-sda-delay = <100>; 204 203 samsung,i2c-max-bus-freq = <66000>; 205 204 ··· 211 208 }; 212 209 213 210 i2c@12C90000 { 211 + status = "okay"; 214 212 samsung,i2c-sda-delay = <100>; 215 213 samsung,i2c-max-bus-freq = <66000>; 216 214 }; 217 215 218 216 i2c@12CA0000 { 217 + status = "okay"; 219 218 samsung,i2c-sda-delay = <100>; 220 219 samsung,i2c-max-bus-freq = <66000>; 221 220 }; 222 221 223 222 i2c@12CB0000 { 223 + status = "okay"; 224 224 samsung,i2c-sda-delay = <100>; 225 225 samsung,i2c-max-bus-freq = <66000>; 226 226 }; 227 227 228 - i2c@12CC0000 { 229 - status = "disabled"; 230 - }; 231 - 232 228 i2c@12CD0000 { 229 + status = "okay"; 233 230 samsung,i2c-sda-delay = <100>; 234 231 samsung,i2c-max-bus-freq = <66000>; 235 232 }; 236 233 237 234 i2c@12CE0000 { 235 + status = "okay"; 238 236 samsung,i2c-sda-delay = <100>; 239 237 samsung,i2c-max-bus-freq = <378000>; 240 238 ··· 260 256 reg = <0>; 261 257 bus-width = <8>; 262 258 }; 263 - }; 264 - 265 - mmc@12210000 { 266 - status = "disabled"; 267 259 }; 268 260 269 261 mmc@12220000 { ··· 295 295 }; 296 296 }; 297 297 298 - spi_0: spi@12d20000 { 299 - status = "disabled"; 300 - }; 301 - 302 298 spi_1: spi@12d30000 { 299 + status = "okay"; 303 300 samsung,spi-src-clk = <0>; 304 301 num-cs = <1>; 305 - }; 306 - 307 - spi_2: spi@12d40000 { 308 - status = "disabled"; 309 302 }; 310 303 311 304 hdmi {
+2 -2
arch/arm/boot/dts/exynos4.dtsi
··· 85 85 reg = <0x10023CE0 0x20>; 86 86 }; 87 87 88 - gic:interrupt-controller@10490000 { 88 + gic: interrupt-controller@10490000 { 89 89 compatible = "arm,cortex-a9-gic"; 90 90 #interrupt-cells = <3>; 91 91 interrupt-controller; 92 92 reg = <0x10490000 0x1000>, <0x10480000 0x100>; 93 93 }; 94 94 95 - combiner:interrupt-controller@10440000 { 95 + combiner: interrupt-controller@10440000 { 96 96 compatible = "samsung,exynos4210-combiner"; 97 97 #interrupt-cells = <2>; 98 98 interrupt-controller;
+1 -1
arch/arm/boot/dts/exynos4210-origen.dts
··· 313 313 display-timings { 314 314 native-mode = <&timing0>; 315 315 timing0: timing { 316 - clock-frequency = <50000>; 316 + clock-frequency = <47500000>; 317 317 hactive = <1024>; 318 318 vactive = <600>; 319 319 hfront-porch = <64>;
+10 -13
arch/arm/boot/dts/exynos4210.dtsi
··· 36 36 reg = <0x10023CA0 0x20>; 37 37 }; 38 38 39 - gic:interrupt-controller@10490000 { 39 + gic: interrupt-controller@10490000 { 40 40 cpu-offset = <0x8000>; 41 41 }; 42 42 43 - combiner:interrupt-controller@10440000 { 43 + combiner: interrupt-controller@10440000 { 44 44 samsung,combiner-nr = <16>; 45 45 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 46 46 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, ··· 51 51 mct@10050000 { 52 52 compatible = "samsung,exynos4210-mct"; 53 53 reg = <0x10050000 0x800>; 54 - interrupt-controller; 55 - #interrups-cells = <2>; 56 54 interrupt-parent = <&mct_map>; 57 - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 58 - <4 0>, <5 0>; 55 + interrupts = <0>, <1>, <2>, <3>, <4>, <5>; 59 56 clocks = <&clock 3>, <&clock 344>; 60 57 clock-names = "fin_pll", "mct"; 61 58 62 59 mct_map: mct-map { 63 - #interrupt-cells = <2>; 60 + #interrupt-cells = <1>; 64 61 #address-cells = <0>; 65 62 #size-cells = <0>; 66 - interrupt-map = <0x0 0 &gic 0 57 0>, 67 - <0x1 0 &gic 0 69 0>, 68 - <0x2 0 &combiner 12 6>, 69 - <0x3 0 &combiner 12 7>, 70 - <0x4 0 &gic 0 42 0>, 71 - <0x5 0 &gic 0 48 0>; 63 + interrupt-map = <0 &gic 0 57 0>, 64 + <1 &gic 0 69 0>, 65 + <2 &combiner 12 6>, 66 + <3 &combiner 12 7>, 67 + <4 &gic 0 42 0>, 68 + <5 &gic 0 48 0>; 72 69 }; 73 70 }; 74 71
+1 -23
arch/arm/boot/dts/exynos4212.dtsi
··· 22 22 / { 23 23 compatible = "samsung,exynos4212"; 24 24 25 - gic:interrupt-controller@10490000 { 25 + gic: interrupt-controller@10490000 { 26 26 cpu-offset = <0x8000>; 27 27 }; 28 28 ··· 33 33 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 34 34 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, 35 35 <0 107 0>, <0 108 0>; 36 - }; 37 - 38 - mct@10050000 { 39 - compatible = "samsung,exynos4412-mct"; 40 - reg = <0x10050000 0x800>; 41 - interrupt-controller; 42 - #interrups-cells = <2>; 43 - interrupt-parent = <&mct_map>; 44 - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 45 - <4 0>, <5 0>; 46 - 47 - mct_map: mct-map { 48 - #interrupt-cells = <2>; 49 - #address-cells = <0>; 50 - #size-cells = <0>; 51 - interrupt-map = <0x0 0 &gic 0 57 0>, 52 - <0x1 0 &combiner 12 5>, 53 - <0x2 0 &combiner 12 6>, 54 - <0x3 0 &combiner 12 7>, 55 - <0x4 0 &gic 1 12 0>, 56 - <0x5 0 &gic 1 12 0>; 57 - }; 58 36 }; 59 37 };
+1 -4
arch/arm/boot/dts/exynos4412-odroidx.dts
··· 38 38 }; 39 39 }; 40 40 41 - mshc@12550000 { 42 - #address-cells = <1>; 43 - #size-cells = <0>; 41 + mmc@12550000 { 44 42 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 45 43 pinctrl-names = "default"; 46 44 vmmc-supply = <&ldo20_reg &buck8_reg>; ··· 47 49 num-slots = <1>; 48 50 supports-highspeed; 49 51 broken-cd; 50 - fifo-depth = <0x80>; 51 52 card-detect-delay = <200>; 52 53 samsung,dw-mshc-ciu-div = <3>; 53 54 samsung,dw-mshc-sdr-timing = <2 3>;
+2 -5
arch/arm/boot/dts/exynos4412-origen.dts
··· 122 122 status = "okay"; 123 123 }; 124 124 125 - mshc@12550000 { 126 - #address-cells = <1>; 127 - #size-cells = <0>; 125 + mmc@12550000 { 128 126 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 129 127 pinctrl-names = "default"; 130 128 status = "okay"; ··· 130 132 num-slots = <1>; 131 133 supports-highspeed; 132 134 broken-cd; 133 - fifo-depth = <0x80>; 134 135 card-detect-delay = <200>; 135 136 samsung,dw-mshc-ciu-div = <3>; 136 137 samsung,dw-mshc-sdr-timing = <2 3>; ··· 156 159 display-timings { 157 160 native-mode = <&timing0>; 158 161 timing0: timing { 159 - clock-frequency = <50000>; 162 + clock-frequency = <47500000>; 160 163 hactive = <1024>; 161 164 vactive = <600>; 162 165 hfront-porch = <64>;
+16 -4
arch/arm/boot/dts/exynos4412-trats2.dts
··· 442 442 }; 443 443 }; 444 444 445 - sdhci@12510000 { 446 - bus-width = <8>; 445 + mmc@12550000 { 446 + num-slots = <1>; 447 + supports-highspeed; 448 + broken-cd; 447 449 non-removable; 448 - pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>; 449 - pinctrl-names = "default"; 450 + card-detect-delay = <200>; 450 451 vmmc-supply = <&vemmc_reg>; 452 + clock-frequency = <400000000>; 453 + samsung,dw-mshc-ciu-div = <0>; 454 + samsung,dw-mshc-sdr-timing = <2 3>; 455 + samsung,dw-mshc-ddr-timing = <1 2>; 456 + pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 457 + pinctrl-names = "default"; 451 458 status = "okay"; 459 + 460 + slot@0 { 461 + reg = <0>; 462 + bus-width = <8>; 463 + }; 452 464 }; 453 465 454 466 serial@13800000 {
+1 -34
arch/arm/boot/dts/exynos4412.dtsi
··· 22 22 / { 23 23 compatible = "samsung,exynos4412"; 24 24 25 - gic:interrupt-controller@10490000 { 25 + gic: interrupt-controller@10490000 { 26 26 cpu-offset = <0x4000>; 27 27 }; 28 28 ··· 35 35 <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>; 36 36 }; 37 37 38 - mct@10050000 { 39 - compatible = "samsung,exynos4412-mct"; 40 - reg = <0x10050000 0x800>; 41 - interrupt-controller; 42 - #interrups-cells = <2>; 43 - interrupt-parent = <&mct_map>; 44 - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, 45 - <4 0>, <5 0>, <6 0>, <7 0>; 46 - clocks = <&clock 3>, <&clock 344>; 47 - clock-names = "fin_pll", "mct"; 48 - 49 - mct_map: mct-map { 50 - #interrupt-cells = <2>; 51 - #address-cells = <0>; 52 - #size-cells = <0>; 53 - interrupt-map = <0x0 0 &gic 0 57 0>, 54 - <0x1 0 &combiner 12 5>, 55 - <0x2 0 &combiner 12 6>, 56 - <0x3 0 &combiner 12 7>, 57 - <0x4 0 &gic 1 12 0>, 58 - <0x5 0 &gic 1 12 0>, 59 - <0x6 0 &gic 1 12 0>, 60 - <0x7 0 &gic 1 12 0>; 61 - }; 62 - }; 63 - 64 - mshc@12550000 { 65 - compatible = "samsung,exynos4412-dw-mshc"; 66 - reg = <0x12550000 0x1000>; 67 - interrupts = <0 77 0>; 68 - #address-cells = <1>; 69 - #size-cells = <0>; 70 - }; 71 38 };
+33
arch/arm/boot/dts/exynos4x12.dtsi
··· 28 28 pinctrl3 = &pinctrl_3; 29 29 fimc-lite0 = &fimc_lite_0; 30 30 fimc-lite1 = &fimc_lite_1; 31 + mshc0 = &mshc_0; 31 32 }; 32 33 33 34 pd_isp: isp-power-domain@10023CA0 { ··· 40 39 compatible = "samsung,exynos4412-clock"; 41 40 reg = <0x10030000 0x20000>; 42 41 #clock-cells = <1>; 42 + }; 43 + 44 + mct@10050000 { 45 + compatible = "samsung,exynos4412-mct"; 46 + reg = <0x10050000 0x800>; 47 + interrupt-parent = <&mct_map>; 48 + interrupts = <0>, <1>, <2>, <3>, <4>; 49 + clocks = <&clock 3>, <&clock 344>; 50 + clock-names = "fin_pll", "mct"; 51 + 52 + mct_map: mct-map { 53 + #interrupt-cells = <1>; 54 + #address-cells = <0>; 55 + #size-cells = <0>; 56 + interrupt-map = <0 &gic 0 57 0>, 57 + <1 &combiner 12 5>, 58 + <2 &combiner 12 6>, 59 + <3 &combiner 12 7>, 60 + <4 &gic 1 12 0>; 61 + }; 43 62 }; 44 63 45 64 pinctrl_0: pinctrl@11400000 { ··· 196 175 #size-cells = <0>; 197 176 }; 198 177 }; 178 + }; 179 + 180 + mshc_0: mmc@12550000 { 181 + compatible = "samsung,exynos4412-dw-mshc"; 182 + reg = <0x12550000 0x1000>; 183 + interrupts = <0 77 0>; 184 + #address-cells = <1>; 185 + #size-cells = <0>; 186 + fifo-depth = <0x80>; 187 + clocks = <&clock 301>, <&clock 149>; 188 + clock-names = "biu", "ciu"; 189 + status = "disabled"; 199 190 }; 200 191 };
+2 -2
arch/arm/boot/dts/exynos5.dtsi
··· 23 23 reg = <0x10000000 0x100>; 24 24 }; 25 25 26 - combiner:interrupt-controller@10440000 { 26 + combiner: interrupt-controller@10440000 { 27 27 compatible = "samsung,exynos4210-combiner"; 28 28 #interrupt-cells = <2>; 29 29 interrupt-controller; ··· 39 39 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; 40 40 }; 41 41 42 - gic:interrupt-controller@10481000 { 42 + gic: interrupt-controller@10481000 { 43 43 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 44 44 #interrupt-cells = <3>; 45 45 interrupt-controller;
+10 -36
arch/arm/boot/dts/exynos5250-arndale.dts
··· 34 34 samsung,i2c-sda-delay = <100>; 35 35 samsung,i2c-max-bus-freq = <20000>; 36 36 samsung,i2c-slave-addr = <0x66>; 37 + status = "okay"; 37 38 38 39 s5m8767_pmic@66 { 39 40 compatible = "samsung,s5m8767-pmic"; ··· 303 302 buck7_reg: BUCK7 { 304 303 regulator-name = "PVDD_BUCK7"; 305 304 regulator-always-on; 305 + op_mode = <1>; 306 306 }; 307 307 308 308 buck8_reg: BUCK8 { 309 309 regulator-name = "PVDD_BUCK8"; 310 310 regulator-always-on; 311 + op_mode = <1>; 311 312 }; 312 313 313 314 buck9_reg: BUCK9 { ··· 322 319 }; 323 320 }; 324 321 325 - i2c@12C70000 { 326 - status = "disabled"; 327 - }; 328 - 329 322 i2c@12C80000 { 323 + status = "okay"; 324 + 330 325 samsung,i2c-sda-delay = <100>; 331 326 samsung,i2c-max-bus-freq = <66000>; 332 327 samsung,i2c-slave-addr = <0x50>; ··· 336 335 }; 337 336 338 337 i2c@12C90000 { 338 + status = "okay"; 339 + 339 340 wm1811a@1a { 341 + 340 342 compatible = "wlf,wm1811"; 341 343 reg = <0x1a>; 342 344 ··· 357 353 }; 358 354 }; 359 355 360 - i2c@12CA0000 { 361 - status = "disabled"; 362 - }; 363 - 364 - i2c@12CB0000 { 365 - status = "disabled"; 366 - }; 367 - 368 - i2c@12CC0000 { 369 - status = "disabled"; 370 - }; 371 - 372 - i2c@12CD0000 { 373 - status = "disabled"; 374 - }; 375 - 376 356 i2c@12CE0000 { 357 + status = "okay"; 358 + 377 359 samsung,i2c-sda-delay = <100>; 378 360 samsung,i2c-max-bus-freq = <66000>; 379 361 samsung,i2c-slave-addr = <0x38>; ··· 368 378 compatible = "samsung,exynos4212-hdmiphy"; 369 379 reg = <0x38>; 370 380 }; 371 - }; 372 - 373 - i2c@121D0000 { 374 - status = "disabled"; 375 381 }; 376 382 377 383 mmc_0: mmc@12200000 { ··· 410 424 411 425 i2s0: i2s@03830000 { 412 426 status = "okay"; 413 - }; 414 - 415 - spi_0: spi@12d20000 { 416 - status = "disabled"; 417 - }; 418 - 419 - spi_1: spi@12d30000 { 420 - status = "disabled"; 421 - }; 422 - 423 - spi_2: spi@12d40000 { 424 - status = "disabled"; 425 427 }; 426 428 427 429 gpio_keys {
+19 -27
arch/arm/boot/dts/exynos5250-smdk5250.dts
··· 30 30 i2c@12C60000 { 31 31 samsung,i2c-sda-delay = <100>; 32 32 samsung,i2c-max-bus-freq = <20000>; 33 + status = "okay"; 33 34 34 35 eeprom@50 { 35 36 compatible = "samsung,s524ad0xd1"; ··· 38 37 }; 39 38 }; 40 39 41 - vdd:fixed-regulator@0 { 40 + vdd: fixed-regulator@0 { 42 41 compatible = "regulator-fixed"; 43 42 regulator-name = "vdd-supply"; 44 43 regulator-min-microvolt = <1800000>; ··· 46 45 regulator-always-on; 47 46 }; 48 47 49 - dbvdd:fixed-regulator@1 { 48 + dbvdd: fixed-regulator@1 { 50 49 compatible = "regulator-fixed"; 51 50 regulator-name = "dbvdd-supply"; 52 51 regulator-min-microvolt = <3300000>; ··· 54 53 regulator-always-on; 55 54 }; 56 55 57 - spkvdd:fixed-regulator@2 { 56 + spkvdd: fixed-regulator@2 { 58 57 compatible = "regulator-fixed"; 59 58 regulator-name = "spkvdd-supply"; 60 59 regulator-min-microvolt = <5000000>; ··· 65 64 i2c@12C70000 { 66 65 samsung,i2c-sda-delay = <100>; 67 66 samsung,i2c-max-bus-freq = <20000>; 67 + status = "okay"; 68 68 69 69 eeprom@51 { 70 70 compatible = "samsung,s524ad0xd1"; ··· 79 77 gpio-controller; 80 78 #gpio-cells = <2>; 81 79 80 + clocks = <&codec_mclk>; 81 + clock-names = "MCLK1"; 82 + 82 83 AVDD2-supply = <&vdd>; 83 84 CPVDD-supply = <&vdd>; 84 85 DBVDD-supply = <&dbvdd>; ··· 94 89 samsung,i2c-sda-delay = <100>; 95 90 samsung,i2c-max-bus-freq = <40000>; 96 91 samsung,i2c-slave-addr = <0x38>; 92 + status = "okay"; 97 93 98 94 sata-phy { 99 95 compatible = "samsung,sata-phy"; ··· 109 103 i2c@12C80000 { 110 104 samsung,i2c-sda-delay = <100>; 111 105 samsung,i2c-max-bus-freq = <66000>; 106 + status = "okay"; 112 107 113 108 hdmiddc@50 { 114 109 compatible = "samsung,exynos4210-hdmiddc"; ··· 117 110 }; 118 111 }; 119 112 120 - i2c@12C90000 { 121 - status = "disabled"; 122 - }; 123 - 124 - i2c@12CA0000 { 125 - status = "disabled"; 126 - }; 127 - 128 - i2c@12CB0000 { 129 - status = "disabled"; 130 - }; 131 - 132 - i2c@12CC0000 { 133 - status = "disabled"; 134 - }; 135 - 136 - i2c@12CD0000 { 137 - status = "disabled"; 138 - }; 139 - 140 113 i2c@12CE0000 { 141 114 samsung,i2c-sda-delay = <100>; 142 115 samsung,i2c-max-bus-freq = <66000>; 116 + status = "okay"; 143 117 144 118 hdmiphy@38 { 145 119 compatible = "samsung,exynos4212-hdmiphy"; ··· 169 181 }; 170 182 171 183 spi_1: spi@12d30000 { 184 + status = "okay"; 185 + 172 186 w25q80bw@0 { 173 187 #address-cells = <1>; 174 188 #size-cells = <1>; ··· 194 204 reg = <0x40000 0xc0000>; 195 205 }; 196 206 }; 197 - }; 198 - 199 - spi_2: spi@12d40000 { 200 - status = "disabled"; 201 207 }; 202 208 203 209 hdmi { ··· 256 270 xxti { 257 271 compatible = "samsung,clock-xxti"; 258 272 clock-frequency = <24000000>; 273 + }; 274 + 275 + codec_mclk: codec-mclk { 276 + compatible = "fixed-clock"; 277 + #clock-cells = <0>; 278 + clock-frequency = <16934000>; 259 279 }; 260 280 }; 261 281 };
+12 -2
arch/arm/boot/dts/exynos5250-snow.dts
··· 10 10 11 11 /dts-v1/; 12 12 #include "exynos5250.dtsi" 13 - #include "cros5250-common.dtsi" 13 + #include "exynos5250-cros-common.dtsi" 14 14 15 15 / { 16 16 model = "Google Snow"; ··· 85 85 keypad,num-rows = <8>; 86 86 keypad,num-columns = <13>; 87 87 google,needs-ghost-filter; 88 - linux,keymap = <0x0001003a /* CAPSLK */ 88 + linux,keymap = <0x0001007d /* L_META */ 89 89 0x0002003b /* F1 */ 90 90 0x00030030 /* B */ 91 91 0x00040044 /* F10 */ ··· 130 130 0x04060024 /* J */ 131 131 0x04080027 /* ; */ 132 132 0x04090026 /* L */ 133 + 0x040a002b /* \ */ 133 134 0x040b001c /* ENTER */ 134 135 135 136 0x0501002c /* Z */ ··· 172 171 }; 173 172 }; 174 173 174 + mmc@12200000 { 175 + status = "okay"; 176 + }; 177 + 178 + mmc@12220000 { 179 + status = "okay"; 180 + }; 181 + 175 182 /* 176 183 * On Snow we've got SIP WiFi and so can keep drive strengths low to 177 184 * reduce EMI. 178 185 */ 179 186 mmc@12230000 { 187 + status = "okay"; 180 188 slot@0 { 181 189 pinctrl-names = "default"; 182 190 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
+24
arch/arm/boot/dts/exynos5250.dtsi
··· 60 60 device_type = "cpu"; 61 61 compatible = "arm,cortex-a15"; 62 62 reg = <0>; 63 + clock-frequency = <1700000000>; 63 64 }; 64 65 cpu@1 { 65 66 device_type = "cpu"; 66 67 compatible = "arm,cortex-a15"; 67 68 reg = <1>; 69 + clock-frequency = <1700000000>; 68 70 }; 69 71 }; 70 72 ··· 244 242 clock-names = "i2c"; 245 243 pinctrl-names = "default"; 246 244 pinctrl-0 = <&i2c0_bus>; 245 + status = "disabled"; 247 246 }; 248 247 249 248 i2c_1: i2c@12C70000 { ··· 257 254 clock-names = "i2c"; 258 255 pinctrl-names = "default"; 259 256 pinctrl-0 = <&i2c1_bus>; 257 + status = "disabled"; 260 258 }; 261 259 262 260 i2c_2: i2c@12C80000 { ··· 270 266 clock-names = "i2c"; 271 267 pinctrl-names = "default"; 272 268 pinctrl-0 = <&i2c2_bus>; 269 + status = "disabled"; 273 270 }; 274 271 275 272 i2c_3: i2c@12C90000 { ··· 283 278 clock-names = "i2c"; 284 279 pinctrl-names = "default"; 285 280 pinctrl-0 = <&i2c3_bus>; 281 + status = "disabled"; 286 282 }; 287 283 288 284 i2c_4: i2c@12CA0000 { ··· 296 290 clock-names = "i2c"; 297 291 pinctrl-names = "default"; 298 292 pinctrl-0 = <&i2c4_bus>; 293 + status = "disabled"; 299 294 }; 300 295 301 296 i2c_5: i2c@12CB0000 { ··· 309 302 clock-names = "i2c"; 310 303 pinctrl-names = "default"; 311 304 pinctrl-0 = <&i2c5_bus>; 305 + status = "disabled"; 312 306 }; 313 307 314 308 i2c_6: i2c@12CC0000 { ··· 322 314 clock-names = "i2c"; 323 315 pinctrl-names = "default"; 324 316 pinctrl-0 = <&i2c6_bus>; 317 + status = "disabled"; 325 318 }; 326 319 327 320 i2c_7: i2c@12CD0000 { ··· 335 326 clock-names = "i2c"; 336 327 pinctrl-names = "default"; 337 328 pinctrl-0 = <&i2c7_bus>; 329 + status = "disabled"; 338 330 }; 339 331 340 332 i2c_8: i2c@12CE0000 { ··· 346 336 #size-cells = <0>; 347 337 clocks = <&clock 302>; 348 338 clock-names = "i2c"; 339 + status = "disabled"; 349 340 }; 350 341 351 342 i2c@121D0000 { ··· 356 345 #size-cells = <0>; 357 346 clocks = <&clock 288>; 358 347 clock-names = "i2c"; 348 + status = "disabled"; 359 349 }; 360 350 361 351 spi_0: spi@12d20000 { 362 352 compatible = "samsung,exynos4210-spi"; 353 + status = "disabled"; 363 354 reg = <0x12d20000 0x100>; 364 355 interrupts = <0 66 0>; 365 356 dmas = <&pdma0 5 ··· 377 364 378 365 spi_1: spi@12d30000 { 379 366 compatible = "samsung,exynos4210-spi"; 367 + status = "disabled"; 380 368 reg = <0x12d30000 0x100>; 381 369 interrupts = <0 67 0>; 382 370 dmas = <&pdma1 5 ··· 393 379 394 380 spi_2: spi@12d40000 { 395 381 compatible = "samsung,exynos4210-spi"; 382 + status = "disabled"; 396 383 reg = <0x12d40000 0x100>; 397 384 interrupts = <0 68 0>; 398 385 dmas = <&pdma0 7 ··· 559 544 reg = <0x10040704 0x8>, 560 545 <0x10050230 0x4>; 561 546 }; 547 + }; 548 + 549 + pwm: pwm@12dd0000 { 550 + compatible = "samsung,exynos4210-pwm"; 551 + reg = <0x12dd0000 0x100>; 552 + samsung,pwm-outputs = <0>, <1>, <2>, <3>; 553 + #pwm-cells = <3>; 554 + clocks = <&clock 311>; 555 + clock-names = "timers"; 562 556 }; 563 557 564 558 amba {
+1 -1
arch/arm/boot/dts/exynos5420-pinctrl.dtsi
··· 64 64 samsung,pins = "gpx0-7"; 65 65 samsung,pin-function = <3>; 66 66 samsung,pin-pud = <0>; 67 - samaung,pin-drv = <0>; 67 + samsung,pin-drv = <0>; 68 68 }; 69 69 }; 70 70
+152
arch/arm/boot/dts/exynos5420.dtsi
··· 43 43 i2c10 = &hsi2c_10; 44 44 gsc0 = &gsc_0; 45 45 gsc1 = &gsc_1; 46 + spi0 = &spi_0; 47 + spi1 = &spi_1; 48 + spi2 = &spi_2; 46 49 }; 47 50 48 51 cpus { ··· 274 271 status = "okay"; 275 272 }; 276 273 274 + amba { 275 + #address-cells = <1>; 276 + #size-cells = <1>; 277 + compatible = "arm,amba-bus"; 278 + interrupt-parent = <&gic>; 279 + ranges; 280 + 281 + pdma0: pdma@121A0000 { 282 + compatible = "arm,pl330", "arm,primecell"; 283 + reg = <0x121A0000 0x1000>; 284 + interrupts = <0 34 0>; 285 + clocks = <&clock 362>; 286 + clock-names = "apb_pclk"; 287 + #dma-cells = <1>; 288 + #dma-channels = <8>; 289 + #dma-requests = <32>; 290 + }; 291 + 292 + pdma1: pdma@121B0000 { 293 + compatible = "arm,pl330", "arm,primecell"; 294 + reg = <0x121B0000 0x1000>; 295 + interrupts = <0 35 0>; 296 + clocks = <&clock 363>; 297 + clock-names = "apb_pclk"; 298 + #dma-cells = <1>; 299 + #dma-channels = <8>; 300 + #dma-requests = <32>; 301 + }; 302 + 303 + mdma0: mdma@10800000 { 304 + compatible = "arm,pl330", "arm,primecell"; 305 + reg = <0x10800000 0x1000>; 306 + interrupts = <0 33 0>; 307 + clocks = <&clock 473>; 308 + clock-names = "apb_pclk"; 309 + #dma-cells = <1>; 310 + #dma-channels = <8>; 311 + #dma-requests = <1>; 312 + }; 313 + 314 + mdma1: mdma@11C10000 { 315 + compatible = "arm,pl330", "arm,primecell"; 316 + reg = <0x11C10000 0x1000>; 317 + interrupts = <0 124 0>; 318 + clocks = <&clock 442>; 319 + clock-names = "apb_pclk"; 320 + #dma-cells = <1>; 321 + #dma-channels = <8>; 322 + #dma-requests = <1>; 323 + }; 324 + }; 325 + 326 + spi_0: spi@12d20000 { 327 + compatible = "samsung,exynos4210-spi"; 328 + reg = <0x12d20000 0x100>; 329 + interrupts = <0 66 0>; 330 + dmas = <&pdma0 5 331 + &pdma0 4>; 332 + dma-names = "tx", "rx"; 333 + #address-cells = <1>; 334 + #size-cells = <0>; 335 + pinctrl-names = "default"; 336 + pinctrl-0 = <&spi0_bus>; 337 + clocks = <&clock 271>, <&clock 135>; 338 + clock-names = "spi", "spi_busclk0"; 339 + status = "disabled"; 340 + }; 341 + 342 + spi_1: spi@12d30000 { 343 + compatible = "samsung,exynos4210-spi"; 344 + reg = <0x12d30000 0x100>; 345 + interrupts = <0 67 0>; 346 + dmas = <&pdma1 5 347 + &pdma1 4>; 348 + dma-names = "tx", "rx"; 349 + #address-cells = <1>; 350 + #size-cells = <0>; 351 + pinctrl-names = "default"; 352 + pinctrl-0 = <&spi1_bus>; 353 + clocks = <&clock 272>, <&clock 136>; 354 + clock-names = "spi", "spi_busclk0"; 355 + status = "disabled"; 356 + }; 357 + 358 + spi_2: spi@12d40000 { 359 + compatible = "samsung,exynos4210-spi"; 360 + reg = <0x12d40000 0x100>; 361 + interrupts = <0 68 0>; 362 + dmas = <&pdma0 7 363 + &pdma0 6>; 364 + dma-names = "tx", "rx"; 365 + #address-cells = <1>; 366 + #size-cells = <0>; 367 + pinctrl-names = "default"; 368 + pinctrl-0 = <&spi2_bus>; 369 + clocks = <&clock 273>, <&clock 137>; 370 + clock-names = "spi", "spi_busclk0"; 371 + status = "disabled"; 372 + }; 373 + 277 374 serial@12C00000 { 278 375 clocks = <&clock 257>, <&clock 128>; 279 376 clock-names = "uart", "clk_uart_baud0"; ··· 392 289 serial@12C30000 { 393 290 clocks = <&clock 260>, <&clock 131>; 394 291 clock-names = "uart", "clk_uart_baud0"; 292 + }; 293 + 294 + pwm: pwm@12dd0000 { 295 + compatible = "samsung,exynos4210-pwm"; 296 + reg = <0x12dd0000 0x100>; 297 + samsung,pwm-outputs = <0>, <1>, <2>, <3>; 298 + #pwm-cells = <3>; 299 + clocks = <&clock 279>; 300 + clock-names = "timers"; 395 301 }; 396 302 397 303 dp_phy: video-phy@10040728 { ··· 611 499 clocks = <&clock 466>; 612 500 clock-names = "gscl"; 613 501 samsung,power-domain = <&gsc_pd>; 502 + }; 503 + 504 + tmu_cpu0: tmu@10060000 { 505 + compatible = "samsung,exynos5420-tmu"; 506 + reg = <0x10060000 0x100>; 507 + interrupts = <0 65 0>; 508 + clocks = <&clock 318>; 509 + clock-names = "tmu_apbif"; 510 + }; 511 + 512 + tmu_cpu1: tmu@10064000 { 513 + compatible = "samsung,exynos5420-tmu"; 514 + reg = <0x10064000 0x100>; 515 + interrupts = <0 183 0>; 516 + clocks = <&clock 318>; 517 + clock-names = "tmu_apbif"; 518 + }; 519 + 520 + tmu_cpu2: tmu@10068000 { 521 + compatible = "samsung,exynos5420-tmu-ext-triminfo"; 522 + reg = <0x10068000 0x100>, <0x1006c000 0x4>; 523 + interrupts = <0 184 0>; 524 + clocks = <&clock 318>, <&clock 318>; 525 + clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 526 + }; 527 + 528 + tmu_cpu3: tmu@1006c000 { 529 + compatible = "samsung,exynos5420-tmu-ext-triminfo"; 530 + reg = <0x1006c000 0x100>, <0x100a0000 0x4>; 531 + interrupts = <0 185 0>; 532 + clocks = <&clock 318>, <&clock 319>; 533 + clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 534 + }; 535 + 536 + tmu_gpu: tmu@100a0000 { 537 + compatible = "samsung,exynos5420-tmu-ext-triminfo"; 538 + reg = <0x100a0000 0x100>, <0x10068000 0x4>; 539 + interrupts = <0 215 0>; 540 + clocks = <&clock 319>, <&clock 318>; 541 + clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 614 542 }; 615 543 };
+1 -1
arch/arm/boot/dts/exynos5440.dtsi
··· 29 29 #clock-cells = <1>; 30 30 }; 31 31 32 - gic:interrupt-controller@2E0000 { 32 + gic: interrupt-controller@2E0000 { 33 33 compatible = "arm,cortex-a15-gic"; 34 34 #interrupt-cells = <3>; 35 35 interrupt-controller;
+10
arch/arm/mach-s3c64xx/mach-mini6410.c
··· 36 36 #include <plat/devs.h> 37 37 #include <plat/fb.h> 38 38 #include <linux/platform_data/mtd-nand-s3c2410.h> 39 + #include <linux/platform_data/mmc-sdhci-s3c.h> 39 40 #include <plat/regs-serial.h> 41 + #include <plat/sdhci.h> 40 42 #include <linux/platform_data/touchscreen-s3c2410.h> 41 43 42 44 #include <video/platform_lcd.h> ··· 216 214 .dev.platform_data = &mini6410_lcd_power_data, 217 215 }; 218 216 217 + static struct s3c_sdhci_platdata mini6410_hsmmc1_pdata = { 218 + .max_width = 4, 219 + .cd_type = S3C_SDHCI_CD_GPIO, 220 + .ext_cd_gpio = S3C64XX_GPN(10), 221 + .ext_cd_gpio_invert = true, 222 + }; 223 + 219 224 static struct platform_device *mini6410_devices[] __initdata = { 220 225 &mini6410_device_eth, 221 226 &s3c_device_hsmmc0, ··· 330 321 331 322 s3c_nand_set_platdata(&mini6410_nand_info); 332 323 s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]); 324 + s3c_sdhci1_set_platdata(&mini6410_hsmmc1_pdata); 333 325 s3c24xx_ts_set_platdata(NULL); 334 326 335 327 /* configure nCS1 width to 16 bits */
+2
arch/arm/plat-samsung/include/plat/uncompress.h
··· 145 145 if (!(fifocon & S3C2410_UFCON_RESETBOTH)) 146 146 break; 147 147 } 148 + 149 + uart_wr(S3C2410_UFCON, S3C2410_UFCON_FIFOMODE); 148 150 } 149 151 } 150 152 #else
+2 -1
drivers/clk/samsung/clk-exynos4.c
··· 530 530 DIV(sclk_i2s1, "sclk_i2s1", "sclk_audio1", DIV_PERIL5, 0, 6), 531 531 DIV(sclk_i2s2, "sclk_i2s2", "sclk_audio2", DIV_PERIL5, 8, 6), 532 532 DIV(none, "div_mmc4", "mout_mmc4", DIV_FSYS3, 0, 4), 533 - DIV(none, "div_mmc_pre4", "div_mmc4", DIV_FSYS3, 8, 8), 533 + DIV_F(none, "div_mmc_pre4", "div_mmc4", DIV_FSYS3, 8, 8, 534 + CLK_SET_RATE_PARENT, 0), 534 535 DIV(none, "div_uart0", "mout_uart0", DIV_PERIL0, 0, 4), 535 536 DIV(none, "div_uart1", "mout_uart1", DIV_PERIL0, 4, 4), 536 537 DIV(none, "div_uart2", "mout_uart2", DIV_PERIL0, 8, 4),