forked from Minki/linux
bb9055b274
These continue the multiplatform support for exynos, adding support for building most of the essential drivers (clocksource, clk, irqchip) when combined with other platforms. As a result, it should become really easy to add full multiplatform exynos support in 3.11, although we don't yet enable it for 3.10. The changes were not included in the earlier multiplatform series in order to avoid clashes with the other Exynos updates. This also includes work from Tomasz Figa to fix the pwm clocksource code on Exynos, which is not strictly required for multiplatform, but related to the other patches in this set and needed as a bug fix for at least one board. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUYgmgWCrR//JCVInAQIp6A//cb87A7biCHo0hd64v7RtX2dIvYTc8ZDh 7O9yH7NuAtbSI7FF7cVQGGK6nCRqmwO2SM/KLFgbt2MF36FLgQKKZhJIDM/qB4jb 3DCHHH814eqExf4MFfZL4Yxl4FaMqxzSwYX8fD28GmpeVxLeHjh0yQCKmPejz5MW WgkMcBJS3IPqbhhKMcMZmXteLrEzEm43Uj6dxkZP7RbinyuWzHvx3IWWv4gQ6ITz 3jcCvZC5JWBo9MEPH43vlmOd8qsAn0OvkbtbYiy2Tre5VerqOgbEEXU2U0A2zUSj YTmRvwIGsIylL2EkVsJTkMj8KJ8TAHZjHyNUY8m2UzWuS+9EdZjf6rXeKIdUz9Wa 0dmiWJEOEvejk0RnHEJm7anmKp7a9YHFkFSRnHbLOAXAMkUZWWcVAMZ4UbDK8RtF RX6R+ga9tR8R7aBLIzqYyfSHaZ7xUpF6nSBOM4GNVNKtViJv3PENWVQrm2GHcQ9w +4IMUqXO/5IRvuHW93l+oN8tENDTF0cR0+S7t0R6Vuuh7OebRt9TAE421Hrvt+7p gI5tvhEeV3o1CMmXWod8X1jxY/1OrONG7wX/x07ymiRnXSd+sZ0CPkYyWultKNw8 bCAsnOP2aFpO1RB0XEC5y8FZ5uSfcQ7Ngu2kyAP7mEXV6qbSHgmb+lyxf2G8ftL2 Rn0M7nbLcz4= =FY7+ -----END PGP SIGNATURE----- Merge tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull late ARM Exynos multiplatform changes from Arnd Bergmann: "These continue the multiplatform support for exynos, adding support for building most of the essential drivers (clocksource, clk, irqchip) when combined with other platforms. As a result, it should become really easy to add full multiplatform exynos support in 3.11, although we don't yet enable it for 3.10. The changes were not included in the earlier multiplatform series in order to avoid clashes with the other Exynos updates. This also includes work from Tomasz Figa to fix the pwm clocksource code on Exynos, which is not strictly required for multiplatform, but related to the other patches in this set and needed as a bug fix for at least one board." * tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits) ARM: dts: exynops4210: really add universal_c210 dts ARM: dts: exynos4210: Add basic dts file for universal_c210 board ARM: dts: exynos4: Add node for PWM device ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core clocksource: samsung_pwm_timer: Correct programming of clock events clocksource: samsung_pwm_timer: Use proper clockevents max_delta clocksource: samsung_pwm_timer: Add support for non-DT platforms clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct clocksource: samsung_pwm_timer: Keep all driver data in a structure clocksource: samsung_pwm_timer: Make PWM spinlock global clocksource: samsung_pwm_timer: Let platforms select the driver Documentation: Add device tree bindings for Samsung PWM timers clocksource: add samsung pwm timer driver irqchip: exynos: look up irq using irq_find_mapping irqchip: exynos: pass irq_base from platform irqchip: exynos: localize irq lookup for ATAGS irqchip: exynos: allocate combiner_data dynamically irqchip: exynos: pass max combiner number to combiner_init ARM: exynos: add missing properties for combiner IRQs ...
400 lines
9.3 KiB
Plaintext
400 lines
9.3 KiB
Plaintext
/*
|
|
* Samsung's Exynos4 SoC series common device tree source
|
|
*
|
|
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com
|
|
* Copyright (c) 2010-2011 Linaro Ltd.
|
|
* www.linaro.org
|
|
*
|
|
* Samsung's Exynos4 SoC series device nodes are listed in this file. Particular
|
|
* SoCs from Exynos4 series can include this file and provide values for SoCs
|
|
* specfic bindings.
|
|
*
|
|
* Note: This file does not include device nodes for all the controllers in
|
|
* Exynos4 SoCs. As device tree coverage for Exynos4 increases, additional
|
|
* nodes can be added to this file.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
/include/ "skeleton.dtsi"
|
|
|
|
/ {
|
|
interrupt-parent = <&gic>;
|
|
|
|
aliases {
|
|
spi0 = &spi_0;
|
|
spi1 = &spi_1;
|
|
spi2 = &spi_2;
|
|
i2c0 = &i2c_0;
|
|
i2c1 = &i2c_1;
|
|
i2c2 = &i2c_2;
|
|
i2c3 = &i2c_3;
|
|
i2c4 = &i2c_4;
|
|
i2c5 = &i2c_5;
|
|
i2c6 = &i2c_6;
|
|
i2c7 = &i2c_7;
|
|
};
|
|
|
|
chipid@10000000 {
|
|
compatible = "samsung,exynos4210-chipid";
|
|
reg = <0x10000000 0x100>;
|
|
};
|
|
|
|
pd_mfc: mfc-power-domain@10023C40 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023C40 0x20>;
|
|
};
|
|
|
|
pd_g3d: g3d-power-domain@10023C60 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023C60 0x20>;
|
|
};
|
|
|
|
pd_lcd0: lcd0-power-domain@10023C80 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023C80 0x20>;
|
|
};
|
|
|
|
pd_tv: tv-power-domain@10023C20 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023C20 0x20>;
|
|
};
|
|
|
|
pd_cam: cam-power-domain@10023C00 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023C00 0x20>;
|
|
};
|
|
|
|
pd_gps: gps-power-domain@10023CE0 {
|
|
compatible = "samsung,exynos4210-pd";
|
|
reg = <0x10023CE0 0x20>;
|
|
};
|
|
|
|
gic:interrupt-controller@10490000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
interrupt-controller;
|
|
reg = <0x10490000 0x1000>, <0x10480000 0x100>;
|
|
};
|
|
|
|
combiner:interrupt-controller@10440000 {
|
|
compatible = "samsung,exynos4210-combiner";
|
|
#interrupt-cells = <2>;
|
|
interrupt-controller;
|
|
reg = <0x10440000 0x1000>;
|
|
};
|
|
|
|
sys_reg: sysreg {
|
|
compatible = "samsung,exynos4-sysreg", "syscon";
|
|
reg = <0x10010000 0x400>;
|
|
};
|
|
|
|
watchdog@10060000 {
|
|
compatible = "samsung,s3c2410-wdt";
|
|
reg = <0x10060000 0x100>;
|
|
interrupts = <0 43 0>;
|
|
clocks = <&clock 345>;
|
|
clock-names = "watchdog";
|
|
status = "disabled";
|
|
};
|
|
|
|
rtc@10070000 {
|
|
compatible = "samsung,s3c6410-rtc";
|
|
reg = <0x10070000 0x100>;
|
|
interrupts = <0 44 0>, <0 45 0>;
|
|
clocks = <&clock 346>;
|
|
clock-names = "rtc";
|
|
status = "disabled";
|
|
};
|
|
|
|
keypad@100A0000 {
|
|
compatible = "samsung,s5pv210-keypad";
|
|
reg = <0x100A0000 0x100>;
|
|
interrupts = <0 109 0>;
|
|
clocks = <&clock 347>;
|
|
clock-names = "keypad";
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci@12510000 {
|
|
compatible = "samsung,exynos4210-sdhci";
|
|
reg = <0x12510000 0x100>;
|
|
interrupts = <0 73 0>;
|
|
clocks = <&clock 297>, <&clock 145>;
|
|
clock-names = "hsmmc", "mmc_busclk.2";
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci@12520000 {
|
|
compatible = "samsung,exynos4210-sdhci";
|
|
reg = <0x12520000 0x100>;
|
|
interrupts = <0 74 0>;
|
|
clocks = <&clock 298>, <&clock 146>;
|
|
clock-names = "hsmmc", "mmc_busclk.2";
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci@12530000 {
|
|
compatible = "samsung,exynos4210-sdhci";
|
|
reg = <0x12530000 0x100>;
|
|
interrupts = <0 75 0>;
|
|
clocks = <&clock 299>, <&clock 147>;
|
|
clock-names = "hsmmc", "mmc_busclk.2";
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci@12540000 {
|
|
compatible = "samsung,exynos4210-sdhci";
|
|
reg = <0x12540000 0x100>;
|
|
interrupts = <0 76 0>;
|
|
clocks = <&clock 300>, <&clock 148>;
|
|
clock-names = "hsmmc", "mmc_busclk.2";
|
|
status = "disabled";
|
|
};
|
|
|
|
mfc: codec@13400000 {
|
|
compatible = "samsung,mfc-v5";
|
|
reg = <0x13400000 0x10000>;
|
|
interrupts = <0 94 0>;
|
|
samsung,power-domain = <&pd_mfc>;
|
|
status = "disabled";
|
|
};
|
|
|
|
serial@13800000 {
|
|
compatible = "samsung,exynos4210-uart";
|
|
reg = <0x13800000 0x100>;
|
|
interrupts = <0 52 0>;
|
|
clocks = <&clock 312>, <&clock 151>;
|
|
clock-names = "uart", "clk_uart_baud0";
|
|
status = "disabled";
|
|
};
|
|
|
|
serial@13810000 {
|
|
compatible = "samsung,exynos4210-uart";
|
|
reg = <0x13810000 0x100>;
|
|
interrupts = <0 53 0>;
|
|
clocks = <&clock 313>, <&clock 152>;
|
|
clock-names = "uart", "clk_uart_baud0";
|
|
status = "disabled";
|
|
};
|
|
|
|
serial@13820000 {
|
|
compatible = "samsung,exynos4210-uart";
|
|
reg = <0x13820000 0x100>;
|
|
interrupts = <0 54 0>;
|
|
clocks = <&clock 314>, <&clock 153>;
|
|
clock-names = "uart", "clk_uart_baud0";
|
|
status = "disabled";
|
|
};
|
|
|
|
serial@13830000 {
|
|
compatible = "samsung,exynos4210-uart";
|
|
reg = <0x13830000 0x100>;
|
|
interrupts = <0 55 0>;
|
|
clocks = <&clock 315>, <&clock 154>;
|
|
clock-names = "uart", "clk_uart_baud0";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_0: i2c@13860000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x13860000 0x100>;
|
|
interrupts = <0 58 0>;
|
|
clocks = <&clock 317>;
|
|
clock-names = "i2c";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_bus>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_1: i2c@13870000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x13870000 0x100>;
|
|
interrupts = <0 59 0>;
|
|
clocks = <&clock 318>;
|
|
clock-names = "i2c";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_bus>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_2: i2c@13880000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x13880000 0x100>;
|
|
interrupts = <0 60 0>;
|
|
clocks = <&clock 319>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_3: i2c@13890000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x13890000 0x100>;
|
|
interrupts = <0 61 0>;
|
|
clocks = <&clock 320>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_4: i2c@138A0000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x138A0000 0x100>;
|
|
interrupts = <0 62 0>;
|
|
clocks = <&clock 321>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_5: i2c@138B0000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x138B0000 0x100>;
|
|
interrupts = <0 63 0>;
|
|
clocks = <&clock 322>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_6: i2c@138C0000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x138C0000 0x100>;
|
|
interrupts = <0 64 0>;
|
|
clocks = <&clock 323>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_7: i2c@138D0000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "samsung,s3c2440-i2c";
|
|
reg = <0x138D0000 0x100>;
|
|
interrupts = <0 65 0>;
|
|
clocks = <&clock 324>;
|
|
clock-names = "i2c";
|
|
status = "disabled";
|
|
};
|
|
|
|
spi_0: spi@13920000 {
|
|
compatible = "samsung,exynos4210-spi";
|
|
reg = <0x13920000 0x100>;
|
|
interrupts = <0 66 0>;
|
|
tx-dma-channel = <&pdma0 7>; /* preliminary */
|
|
rx-dma-channel = <&pdma0 6>; /* preliminary */
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&clock 327>, <&clock 159>;
|
|
clock-names = "spi", "spi_busclk0";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi0_bus>;
|
|
status = "disabled";
|
|
};
|
|
|
|
spi_1: spi@13930000 {
|
|
compatible = "samsung,exynos4210-spi";
|
|
reg = <0x13930000 0x100>;
|
|
interrupts = <0 67 0>;
|
|
tx-dma-channel = <&pdma1 7>; /* preliminary */
|
|
rx-dma-channel = <&pdma1 6>; /* preliminary */
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&clock 328>, <&clock 160>;
|
|
clock-names = "spi", "spi_busclk0";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi1_bus>;
|
|
status = "disabled";
|
|
};
|
|
|
|
spi_2: spi@13940000 {
|
|
compatible = "samsung,exynos4210-spi";
|
|
reg = <0x13940000 0x100>;
|
|
interrupts = <0 68 0>;
|
|
tx-dma-channel = <&pdma0 9>; /* preliminary */
|
|
rx-dma-channel = <&pdma0 8>; /* preliminary */
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&clock 329>, <&clock 161>;
|
|
clock-names = "spi", "spi_busclk0";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi2_bus>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pwm@139D0000 {
|
|
compatible = "samsung,exynos4210-pwm";
|
|
reg = <0x139D0000 0x1000>;
|
|
interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>;
|
|
#pwm-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
amba {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "arm,amba-bus";
|
|
interrupt-parent = <&gic>;
|
|
ranges;
|
|
|
|
pdma0: pdma@12680000 {
|
|
compatible = "arm,pl330", "arm,primecell";
|
|
reg = <0x12680000 0x1000>;
|
|
interrupts = <0 35 0>;
|
|
clocks = <&clock 292>;
|
|
clock-names = "apb_pclk";
|
|
#dma-cells = <1>;
|
|
#dma-channels = <8>;
|
|
#dma-requests = <32>;
|
|
};
|
|
|
|
pdma1: pdma@12690000 {
|
|
compatible = "arm,pl330", "arm,primecell";
|
|
reg = <0x12690000 0x1000>;
|
|
interrupts = <0 36 0>;
|
|
clocks = <&clock 293>;
|
|
clock-names = "apb_pclk";
|
|
#dma-cells = <1>;
|
|
#dma-channels = <8>;
|
|
#dma-requests = <32>;
|
|
};
|
|
|
|
mdma1: mdma@12850000 {
|
|
compatible = "arm,pl330", "arm,primecell";
|
|
reg = <0x12850000 0x1000>;
|
|
interrupts = <0 34 0>;
|
|
clocks = <&clock 279>;
|
|
clock-names = "apb_pclk";
|
|
#dma-cells = <1>;
|
|
#dma-channels = <8>;
|
|
#dma-requests = <1>;
|
|
};
|
|
};
|
|
|
|
fimd: fimd@11c00000 {
|
|
compatible = "samsung,exynos4210-fimd";
|
|
interrupt-parent = <&combiner>;
|
|
reg = <0x11c00000 0x20000>;
|
|
interrupt-names = "fifo", "vsync", "lcd_sys";
|
|
interrupts = <11 0>, <11 1>, <11 2>;
|
|
clocks = <&clock 140>, <&clock 283>;
|
|
clock-names = "sclk_fimd", "fimd";
|
|
samsung,power-domain = <&pd_lcd0>;
|
|
status = "disabled";
|
|
};
|
|
};
|