diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-04-19 17:12:42 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-04-19 17:12:42 -0400 |
commit | 22cf644e03419b4c3d002109b021c7482306f0bf (patch) | |
tree | db426bcf5d4f7acfdbcaa5276b87d12cbb061fa1 /Documentation | |
parent | 31880c37c11e28cb81c70757e38392b42e695dc6 (diff) | |
parent | db60074b468c5935760bd1f33cd192fae3c28b2b (diff) |
Merge branch 'next/drivers' into late/multiplatform
Multiple parts of next/drivers are prerequisites for the final
exynos multiplatform changes, so let's pull in the entire branch.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'Documentation')
22 files changed, 1625 insertions, 57 deletions
diff --git a/Documentation/arm/sunxi/clocks.txt b/Documentation/arm/sunxi/clocks.txt new file mode 100644 index 000000000000..e09a88aa3136 --- /dev/null +++ b/Documentation/arm/sunxi/clocks.txt | |||
@@ -0,0 +1,56 @@ | |||
1 | Frequently asked questions about the sunxi clock system | ||
2 | ======================================================= | ||
3 | |||
4 | This document contains useful bits of information that people tend to ask | ||
5 | about the sunxi clock system, as well as accompanying ASCII art when adequate. | ||
6 | |||
7 | Q: Why is the main 24MHz oscillator gatable? Wouldn't that break the | ||
8 | system? | ||
9 | |||
10 | A: The 24MHz oscillator allows gating to save power. Indeed, if gated | ||
11 | carelessly the system would stop functioning, but with the right | ||
12 | steps, one can gate it and keep the system running. Consider this | ||
13 | simplified suspend example: | ||
14 | |||
15 | While the system is operational, you would see something like | ||
16 | |||
17 | 24MHz 32kHz | ||
18 | | | ||
19 | PLL1 | ||
20 | \ | ||
21 | \_ CPU Mux | ||
22 | | | ||
23 | [CPU] | ||
24 | |||
25 | When you are about to suspend, you switch the CPU Mux to the 32kHz | ||
26 | oscillator: | ||
27 | |||
28 | 24Mhz 32kHz | ||
29 | | | | ||
30 | PLL1 | | ||
31 | / | ||
32 | CPU Mux _/ | ||
33 | | | ||
34 | [CPU] | ||
35 | |||
36 | Finally you can gate the main oscillator | ||
37 | |||
38 | 32kHz | ||
39 | | | ||
40 | | | ||
41 | / | ||
42 | CPU Mux _/ | ||
43 | | | ||
44 | [CPU] | ||
45 | |||
46 | Q: Were can I learn more about the sunxi clocks? | ||
47 | |||
48 | A: The linux-sunxi wiki contains a page documenting the clock registers, | ||
49 | you can find it at | ||
50 | |||
51 | http://linux-sunxi.org/A10/CCM | ||
52 | |||
53 | The authoritative source for information at this time is the ccmu driver | ||
54 | released by Allwinner, you can find it at | ||
55 | |||
56 | https://github.com/linux-sunxi/linux-sunxi/tree/sunxi-3.0/arch/arm/mach-sun4i/clock/ccmu | ||
diff --git a/Documentation/clk.txt b/Documentation/clk.txt index 1943fae014fd..4274a546eb57 100644 --- a/Documentation/clk.txt +++ b/Documentation/clk.txt | |||
@@ -174,9 +174,9 @@ int clk_foo_enable(struct clk_hw *hw) | |||
174 | }; | 174 | }; |
175 | 175 | ||
176 | Below is a matrix detailing which clk_ops are mandatory based upon the | 176 | Below is a matrix detailing which clk_ops are mandatory based upon the |
177 | hardware capbilities of that clock. A cell marked as "y" means | 177 | hardware capabilities of that clock. A cell marked as "y" means |
178 | mandatory, a cell marked as "n" implies that either including that | 178 | mandatory, a cell marked as "n" implies that either including that |
179 | callback is invalid or otherwise uneccesary. Empty cells are either | 179 | callback is invalid or otherwise unnecessary. Empty cells are either |
180 | optional or must be evaluated on a case-by-case basis. | 180 | optional or must be evaluated on a case-by-case basis. |
181 | 181 | ||
182 | clock hardware characteristics | 182 | clock hardware characteristics |
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt index b5846e21cc2e..1608a54e90e1 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt | |||
@@ -1,19 +1,84 @@ | |||
1 | NVIDIA Tegra Power Management Controller (PMC) | 1 | NVIDIA Tegra Power Management Controller (PMC) |
2 | 2 | ||
3 | Properties: | 3 | The PMC block interacts with an external Power Management Unit. The PMC |
4 | mostly controls the entry and exit of the system from different sleep | ||
5 | modes. It provides power-gating controllers for SoC and CPU power-islands. | ||
6 | |||
7 | Required properties: | ||
4 | - name : Should be pmc | 8 | - name : Should be pmc |
5 | - compatible : Should contain "nvidia,tegra<chip>-pmc". | 9 | - compatible : Should contain "nvidia,tegra<chip>-pmc". |
6 | - reg : Offset and length of the register set for the device | 10 | - reg : Offset and length of the register set for the device |
11 | - clocks : Must contain an entry for each entry in clock-names. | ||
12 | - clock-names : Must include the following entries: | ||
13 | "pclk" (The Tegra clock of that name), | ||
14 | "clk32k_in" (The 32KHz clock input to Tegra). | ||
15 | |||
16 | Optional properties: | ||
7 | - nvidia,invert-interrupt : If present, inverts the PMU interrupt signal. | 17 | - nvidia,invert-interrupt : If present, inverts the PMU interrupt signal. |
8 | The PMU is an external Power Management Unit, whose interrupt output | 18 | The PMU is an external Power Management Unit, whose interrupt output |
9 | signal is fed into the PMC. This signal is optionally inverted, and then | 19 | signal is fed into the PMC. This signal is optionally inverted, and then |
10 | fed into the ARM GIC. The PMC is not involved in the detection or | 20 | fed into the ARM GIC. The PMC is not involved in the detection or |
11 | handling of this interrupt signal, merely its inversion. | 21 | handling of this interrupt signal, merely its inversion. |
22 | - nvidia,suspend-mode : The suspend mode that the platform should use. | ||
23 | Valid values are 0, 1 and 2: | ||
24 | 0 (LP0): CPU + Core voltage off and DRAM in self-refresh | ||
25 | 1 (LP1): CPU voltage off and DRAM in self-refresh | ||
26 | 2 (LP2): CPU voltage off | ||
27 | - nvidia,core-power-req-active-high : Boolean, core power request active-high | ||
28 | - nvidia,sys-clock-req-active-high : Boolean, system clock request active-high | ||
29 | - nvidia,combined-power-req : Boolean, combined power request for CPU & Core | ||
30 | - nvidia,cpu-pwr-good-en : Boolean, CPU power good signal (from PMIC to PMC) | ||
31 | is enabled. | ||
32 | |||
33 | Required properties when nvidia,suspend-mode is specified: | ||
34 | - nvidia,cpu-pwr-good-time : CPU power good time in uS. | ||
35 | - nvidia,cpu-pwr-off-time : CPU power off time in uS. | ||
36 | - nvidia,core-pwr-good-time : <Oscillator-stable-time Power-stable-time> | ||
37 | Core power good time in uS. | ||
38 | - nvidia,core-pwr-off-time : Core power off time in uS. | ||
39 | |||
40 | Required properties when nvidia,suspend-mode=<0>: | ||
41 | - nvidia,lp0-vec : <start length> Starting address and length of LP0 vector | ||
42 | The LP0 vector contains the warm boot code that is executed by AVP when | ||
43 | resuming from the LP0 state. The AVP (Audio-Video Processor) is an ARM7 | ||
44 | processor and always being the first boot processor when chip is power on | ||
45 | or resume from deep sleep mode. When the system is resumed from the deep | ||
46 | sleep mode, the warm boot code will restore some PLLs, clocks and then | ||
47 | bring up CPU0 for resuming the system. | ||
12 | 48 | ||
13 | Example: | 49 | Example: |
14 | 50 | ||
51 | / SoC dts including file | ||
15 | pmc@7000f400 { | 52 | pmc@7000f400 { |
16 | compatible = "nvidia,tegra20-pmc"; | 53 | compatible = "nvidia,tegra20-pmc"; |
17 | reg = <0x7000e400 0x400>; | 54 | reg = <0x7000e400 0x400>; |
55 | clocks = <&tegra_car 110>, <&clk32k_in>; | ||
56 | clock-names = "pclk", "clk32k_in"; | ||
18 | nvidia,invert-interrupt; | 57 | nvidia,invert-interrupt; |
58 | nvidia,suspend-mode = <1>; | ||
59 | nvidia,cpu-pwr-good-time = <2000>; | ||
60 | nvidia,cpu-pwr-off-time = <100>; | ||
61 | nvidia,core-pwr-good-time = <3845 3845>; | ||
62 | nvidia,core-pwr-off-time = <458>; | ||
63 | nvidia,core-power-req-active-high; | ||
64 | nvidia,sys-clock-req-active-high; | ||
65 | nvidia,lp0-vec = <0xbdffd000 0x2000>; | ||
66 | }; | ||
67 | |||
68 | / Tegra board dts file | ||
69 | { | ||
70 | ... | ||
71 | clocks { | ||
72 | compatible = "simple-bus"; | ||
73 | #address-cells = <1>; | ||
74 | #size-cells = <0>; | ||
75 | |||
76 | clk32k_in: clock { | ||
77 | compatible = "fixed-clock"; | ||
78 | reg=<0>; | ||
79 | #clock-cells = <0>; | ||
80 | clock-frequency = <32768>; | ||
81 | }; | ||
82 | }; | ||
83 | ... | ||
19 | }; | 84 | }; |
diff --git a/Documentation/devicetree/bindings/bus/ti-gpmc.txt b/Documentation/devicetree/bindings/bus/ti-gpmc.txt index 5ddb2e9efaaa..4b87ea1194e3 100644 --- a/Documentation/devicetree/bindings/bus/ti-gpmc.txt +++ b/Documentation/devicetree/bindings/bus/ti-gpmc.txt | |||
@@ -35,36 +35,83 @@ Required properties: | |||
35 | 35 | ||
36 | Timing properties for child nodes. All are optional and default to 0. | 36 | Timing properties for child nodes. All are optional and default to 0. |
37 | 37 | ||
38 | - gpmc,sync-clk: Minimum clock period for synchronous mode, in picoseconds | 38 | - gpmc,sync-clk-ps: Minimum clock period for synchronous mode, in picoseconds |
39 | 39 | ||
40 | Chip-select signal timings corresponding to GPMC_CONFIG2: | 40 | Chip-select signal timings (in nanoseconds) corresponding to GPMC_CONFIG2: |
41 | - gpmc,cs-on: Assertion time | 41 | - gpmc,cs-on-ns: Assertion time |
42 | - gpmc,cs-rd-off: Read deassertion time | 42 | - gpmc,cs-rd-off-ns: Read deassertion time |
43 | - gpmc,cs-wr-off: Write deassertion time | 43 | - gpmc,cs-wr-off-ns: Write deassertion time |
44 | 44 | ||
45 | ADV signal timings corresponding to GPMC_CONFIG3: | 45 | ADV signal timings (in nanoseconds) corresponding to GPMC_CONFIG3: |
46 | - gpmc,adv-on: Assertion time | 46 | - gpmc,adv-on-ns: Assertion time |
47 | - gpmc,adv-rd-off: Read deassertion time | 47 | - gpmc,adv-rd-off-ns: Read deassertion time |
48 | - gpmc,adv-wr-off: Write deassertion time | 48 | - gpmc,adv-wr-off-ns: Write deassertion time |
49 | 49 | ||
50 | WE signals timings corresponding to GPMC_CONFIG4: | 50 | WE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: |
51 | - gpmc,we-on: Assertion time | 51 | - gpmc,we-on-ns Assertion time |
52 | - gpmc,we-off: Deassertion time | 52 | - gpmc,we-off-ns: Deassertion time |
53 | 53 | ||
54 | OE signals timings corresponding to GPMC_CONFIG4: | 54 | OE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: |
55 | - gpmc,oe-on: Assertion time | 55 | - gpmc,oe-on-ns: Assertion time |
56 | - gpmc,oe-off: Deassertion time | 56 | - gpmc,oe-off-ns: Deassertion time |
57 | 57 | ||
58 | Access time and cycle time timings corresponding to GPMC_CONFIG5: | 58 | Access time and cycle time timings (in nanoseconds) corresponding to |
59 | - gpmc,page-burst-access: Multiple access word delay | 59 | GPMC_CONFIG5: |
60 | - gpmc,access: Start-cycle to first data valid delay | 60 | - gpmc,page-burst-access-ns: Multiple access word delay |
61 | - gpmc,rd-cycle: Total read cycle time | 61 | - gpmc,access-ns: Start-cycle to first data valid delay |
62 | - gpmc,wr-cycle: Total write cycle time | 62 | - gpmc,rd-cycle-ns: Total read cycle time |
63 | - gpmc,wr-cycle-ns: Total write cycle time | ||
64 | - gpmc,bus-turnaround-ns: Turn-around time between successive accesses | ||
65 | - gpmc,cycle2cycle-delay-ns: Delay between chip-select pulses | ||
66 | - gpmc,clk-activation-ns: GPMC clock activation time | ||
67 | - gpmc,wait-monitoring-ns: Start of wait monitoring with regard to valid | ||
68 | data | ||
69 | |||
70 | Boolean timing parameters. If property is present parameter enabled and | ||
71 | disabled if omitted: | ||
72 | - gpmc,adv-extra-delay: ADV signal is delayed by half GPMC clock | ||
73 | - gpmc,cs-extra-delay: CS signal is delayed by half GPMC clock | ||
74 | - gpmc,cycle2cycle-diffcsen: Add "cycle2cycle-delay" between successive | ||
75 | accesses to a different CS | ||
76 | - gpmc,cycle2cycle-samecsen: Add "cycle2cycle-delay" between successive | ||
77 | accesses to the same CS | ||
78 | - gpmc,oe-extra-delay: OE signal is delayed by half GPMC clock | ||
79 | - gpmc,we-extra-delay: WE signal is delayed by half GPMC clock | ||
80 | - gpmc,time-para-granularity: Multiply all access times by 2 | ||
63 | 81 | ||
64 | The following are only applicable to OMAP3+ and AM335x: | 82 | The following are only applicable to OMAP3+ and AM335x: |
65 | - gpmc,wr-access | 83 | - gpmc,wr-access-ns: In synchronous write mode, for single or |
66 | - gpmc,wr-data-mux-bus | 84 | burst accesses, defines the number of |
67 | 85 | GPMC_FCLK cycles from start access time | |
86 | to the GPMC_CLK rising edge used by the | ||
87 | memory device for the first data capture. | ||
88 | - gpmc,wr-data-mux-bus-ns: In address-data multiplex mode, specifies | ||
89 | the time when the first data is driven on | ||
90 | the address-data bus. | ||
91 | |||
92 | GPMC chip-select settings properties for child nodes. All are optional. | ||
93 | |||
94 | - gpmc,burst-length Page/burst length. Must be 4, 8 or 16. | ||
95 | - gpmc,burst-wrap Enables wrap bursting | ||
96 | - gpmc,burst-read Enables read page/burst mode | ||
97 | - gpmc,burst-write Enables write page/burst mode | ||
98 | - gpmc,device-nand Device is NAND | ||
99 | - gpmc,device-width Total width of device(s) connected to a GPMC | ||
100 | chip-select in bytes. The GPMC supports 8-bit | ||
101 | and 16-bit devices and so this property must be | ||
102 | 1 or 2. | ||
103 | - gpmc,mux-add-data Address and data multiplexing configuration. | ||
104 | Valid values are 1 for address-address-data | ||
105 | multiplexing mode and 2 for address-data | ||
106 | multiplexing mode. | ||
107 | - gpmc,sync-read Enables synchronous read. Defaults to asynchronous | ||
108 | is this is not set. | ||
109 | - gpmc,sync-write Enables synchronous writes. Defaults to asynchronous | ||
110 | is this is not set. | ||
111 | - gpmc,wait-pin Wait-pin used by client. Must be less than | ||
112 | "gpmc,num-waitpins". | ||
113 | - gpmc,wait-on-read Enables wait monitoring on reads. | ||
114 | - gpmc,wait-on-write Enables wait monitoring on writes. | ||
68 | 115 | ||
69 | Example for an AM33xx board: | 116 | Example for an AM33xx board: |
70 | 117 | ||
diff --git a/Documentation/devicetree/bindings/clock/axi-clkgen.txt b/Documentation/devicetree/bindings/clock/axi-clkgen.txt new file mode 100644 index 000000000000..028b493e97ff --- /dev/null +++ b/Documentation/devicetree/bindings/clock/axi-clkgen.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | Binding for the axi-clkgen clock generator | ||
2 | |||
3 | This binding uses the common clock binding[1]. | ||
4 | |||
5 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : shall be "adi,axi-clkgen". | ||
9 | - #clock-cells : from common clock binding; Should always be set to 0. | ||
10 | - reg : Address and length of the axi-clkgen register set. | ||
11 | - clocks : Phandle and clock specifier for the parent clock. | ||
12 | |||
13 | Optional properties: | ||
14 | - clock-output-names : From common clock binding. | ||
15 | |||
16 | Example: | ||
17 | clock@0xff000000 { | ||
18 | compatible = "adi,axi-clkgen"; | ||
19 | #clock-cells = <0>; | ||
20 | reg = <0xff000000 0x1000>; | ||
21 | clocks = <&osc 1>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt new file mode 100644 index 000000000000..ea5e26f16aec --- /dev/null +++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt | |||
@@ -0,0 +1,288 @@ | |||
1 | * Samsung Exynos4 Clock Controller | ||
2 | |||
3 | The Exynos4 clock controller generates and supplies clock to various controllers | ||
4 | within the Exynos4 SoC. The clock binding described here is applicable to all | ||
5 | SoC's in the Exynos4 family. | ||
6 | |||
7 | Required Properties: | ||
8 | |||
9 | - comptible: should be one of the following. | ||
10 | - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC. | ||
11 | - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC. | ||
12 | |||
13 | - reg: physical base address of the controller and length of memory mapped | ||
14 | region. | ||
15 | |||
16 | - #clock-cells: should be 1. | ||
17 | |||
18 | The following is the list of clocks generated by the controller. Each clock is | ||
19 | assigned an identifier and client nodes use this identifier to specify the | ||
20 | clock which they consume. Some of the clocks are available only on a particular | ||
21 | Exynos4 SoC and this is specified where applicable. | ||
22 | |||
23 | |||
24 | [Core Clocks] | ||
25 | |||
26 | Clock ID SoC (if specific) | ||
27 | ----------------------------------------------- | ||
28 | |||
29 | xxti 1 | ||
30 | xusbxti 2 | ||
31 | fin_pll 3 | ||
32 | fout_apll 4 | ||
33 | fout_mpll 5 | ||
34 | fout_epll 6 | ||
35 | fout_vpll 7 | ||
36 | sclk_apll 8 | ||
37 | sclk_mpll 9 | ||
38 | sclk_epll 10 | ||
39 | sclk_vpll 11 | ||
40 | arm_clk 12 | ||
41 | aclk200 13 | ||
42 | aclk100 14 | ||
43 | aclk160 15 | ||
44 | aclk133 16 | ||
45 | mout_mpll_user_t 17 Exynos4x12 | ||
46 | mout_mpll_user_c 18 Exynos4x12 | ||
47 | mout_core 19 | ||
48 | mout_apll 20 | ||
49 | |||
50 | |||
51 | [Clock Gate for Special Clocks] | ||
52 | |||
53 | Clock ID SoC (if specific) | ||
54 | ----------------------------------------------- | ||
55 | |||
56 | sclk_fimc0 128 | ||
57 | sclk_fimc1 129 | ||
58 | sclk_fimc2 130 | ||
59 | sclk_fimc3 131 | ||
60 | sclk_cam0 132 | ||
61 | sclk_cam1 133 | ||
62 | sclk_csis0 134 | ||
63 | sclk_csis1 135 | ||
64 | sclk_hdmi 136 | ||
65 | sclk_mixer 137 | ||
66 | sclk_dac 138 | ||
67 | sclk_pixel 139 | ||
68 | sclk_fimd0 140 | ||
69 | sclk_mdnie0 141 Exynos4412 | ||
70 | sclk_mdnie_pwm0 12 142 Exynos4412 | ||
71 | sclk_mipi0 143 | ||
72 | sclk_audio0 144 | ||
73 | sclk_mmc0 145 | ||
74 | sclk_mmc1 146 | ||
75 | sclk_mmc2 147 | ||
76 | sclk_mmc3 148 | ||
77 | sclk_mmc4 149 | ||
78 | sclk_sata 150 Exynos4210 | ||
79 | sclk_uart0 151 | ||
80 | sclk_uart1 152 | ||
81 | sclk_uart2 153 | ||
82 | sclk_uart3 154 | ||
83 | sclk_uart4 155 | ||
84 | sclk_audio1 156 | ||
85 | sclk_audio2 157 | ||
86 | sclk_spdif 158 | ||
87 | sclk_spi0 159 | ||
88 | sclk_spi1 160 | ||
89 | sclk_spi2 161 | ||
90 | sclk_slimbus 162 | ||
91 | sclk_fimd1 163 Exynos4210 | ||
92 | sclk_mipi1 164 Exynos4210 | ||
93 | sclk_pcm1 165 | ||
94 | sclk_pcm2 166 | ||
95 | sclk_i2s1 167 | ||
96 | sclk_i2s2 168 | ||
97 | sclk_mipihsi 169 Exynos4412 | ||
98 | sclk_mfc 170 | ||
99 | sclk_pcm0 171 | ||
100 | sclk_g3d 172 | ||
101 | sclk_pwm_isp 173 Exynos4x12 | ||
102 | sclk_spi0_isp 174 Exynos4x12 | ||
103 | sclk_spi1_isp 175 Exynos4x12 | ||
104 | sclk_uart_isp 176 Exynos4x12 | ||
105 | |||
106 | [Peripheral Clock Gates] | ||
107 | |||
108 | Clock ID SoC (if specific) | ||
109 | ----------------------------------------------- | ||
110 | |||
111 | fimc0 256 | ||
112 | fimc1 257 | ||
113 | fimc2 258 | ||
114 | fimc3 259 | ||
115 | csis0 260 | ||
116 | csis1 261 | ||
117 | jpeg 262 | ||
118 | smmu_fimc0 263 | ||
119 | smmu_fimc1 264 | ||
120 | smmu_fimc2 265 | ||
121 | smmu_fimc3 266 | ||
122 | smmu_jpeg 267 | ||
123 | vp 268 | ||
124 | mixer 269 | ||
125 | tvenc 270 Exynos4210 | ||
126 | hdmi 271 | ||
127 | smmu_tv 272 | ||
128 | mfc 273 | ||
129 | smmu_mfcl 274 | ||
130 | smmu_mfcr 275 | ||
131 | g3d 276 | ||
132 | g2d 277 Exynos4210 | ||
133 | rotator 278 Exynos4210 | ||
134 | mdma 279 Exynos4210 | ||
135 | smmu_g2d 280 Exynos4210 | ||
136 | smmu_rotator 281 Exynos4210 | ||
137 | smmu_mdma 282 Exynos4210 | ||
138 | fimd0 283 | ||
139 | mie0 284 | ||
140 | mdnie0 285 Exynos4412 | ||
141 | dsim0 286 | ||
142 | smmu_fimd0 287 | ||
143 | fimd1 288 Exynos4210 | ||
144 | mie1 289 Exynos4210 | ||
145 | dsim1 290 Exynos4210 | ||
146 | smmu_fimd1 291 Exynos4210 | ||
147 | pdma0 292 | ||
148 | pdma1 293 | ||
149 | pcie_phy 294 | ||
150 | sata_phy 295 Exynos4210 | ||
151 | tsi 296 | ||
152 | sdmmc0 297 | ||
153 | sdmmc1 298 | ||
154 | sdmmc2 299 | ||
155 | sdmmc3 300 | ||
156 | sdmmc4 301 | ||
157 | sata 302 Exynos4210 | ||
158 | sromc 303 | ||
159 | usb_host 304 | ||
160 | usb_device 305 | ||
161 | pcie 306 | ||
162 | onenand 307 | ||
163 | nfcon 308 | ||
164 | smmu_pcie 309 | ||
165 | gps 310 | ||
166 | smmu_gps 311 | ||
167 | uart0 312 | ||
168 | uart1 313 | ||
169 | uart2 314 | ||
170 | uart3 315 | ||
171 | uart4 316 | ||
172 | i2c0 317 | ||
173 | i2c1 318 | ||
174 | i2c2 319 | ||
175 | i2c3 320 | ||
176 | i2c4 321 | ||
177 | i2c5 322 | ||
178 | i2c6 323 | ||
179 | i2c7 324 | ||
180 | i2c_hdmi 325 | ||
181 | tsadc 326 | ||
182 | spi0 327 | ||
183 | spi1 328 | ||
184 | spi2 329 | ||
185 | i2s1 330 | ||
186 | i2s2 331 | ||
187 | pcm0 332 | ||
188 | i2s0 333 | ||
189 | pcm1 334 | ||
190 | pcm2 335 | ||
191 | pwm 336 | ||
192 | slimbus 337 | ||
193 | spdif 338 | ||
194 | ac97 339 | ||
195 | modemif 340 | ||
196 | chipid 341 | ||
197 | sysreg 342 | ||
198 | hdmi_cec 343 | ||
199 | mct 344 | ||
200 | wdt 345 | ||
201 | rtc 346 | ||
202 | keyif 347 | ||
203 | audss 348 | ||
204 | mipi_hsi 349 Exynos4210 | ||
205 | mdma2 350 Exynos4210 | ||
206 | pixelasyncm0 351 | ||
207 | pixelasyncm1 352 | ||
208 | fimc_lite0 353 Exynos4x12 | ||
209 | fimc_lite1 354 Exynos4x12 | ||
210 | ppmuispx 355 Exynos4x12 | ||
211 | ppmuispmx 356 Exynos4x12 | ||
212 | fimc_isp 357 Exynos4x12 | ||
213 | fimc_drc 358 Exynos4x12 | ||
214 | fimc_fd 359 Exynos4x12 | ||
215 | mcuisp 360 Exynos4x12 | ||
216 | gicisp 361 Exynos4x12 | ||
217 | smmu_isp 362 Exynos4x12 | ||
218 | smmu_drc 363 Exynos4x12 | ||
219 | smmu_fd 364 Exynos4x12 | ||
220 | smmu_lite0 365 Exynos4x12 | ||
221 | smmu_lite1 366 Exynos4x12 | ||
222 | mcuctl_isp 367 Exynos4x12 | ||
223 | mpwm_isp 368 Exynos4x12 | ||
224 | i2c0_isp 369 Exynos4x12 | ||
225 | i2c1_isp 370 Exynos4x12 | ||
226 | mtcadc_isp 371 Exynos4x12 | ||
227 | pwm_isp 372 Exynos4x12 | ||
228 | wdt_isp 373 Exynos4x12 | ||
229 | uart_isp 374 Exynos4x12 | ||
230 | asyncaxim 375 Exynos4x12 | ||
231 | smmu_ispcx 376 Exynos4x12 | ||
232 | spi0_isp 377 Exynos4x12 | ||
233 | spi1_isp 378 Exynos4x12 | ||
234 | pwm_isp_sclk 379 Exynos4x12 | ||
235 | spi0_isp_sclk 380 Exynos4x12 | ||
236 | spi1_isp_sclk 381 Exynos4x12 | ||
237 | uart_isp_sclk 382 Exynos4x12 | ||
238 | |||
239 | [Mux Clocks] | ||
240 | |||
241 | Clock ID SoC (if specific) | ||
242 | ----------------------------------------------- | ||
243 | |||
244 | mout_fimc0 384 | ||
245 | mout_fimc1 385 | ||
246 | mout_fimc2 386 | ||
247 | mout_fimc3 387 | ||
248 | mout_cam0 388 | ||
249 | mout_cam1 389 | ||
250 | mout_csis0 390 | ||
251 | mout_csis1 391 | ||
252 | mout_g3d0 392 | ||
253 | mout_g3d1 393 | ||
254 | mout_g3d 394 | ||
255 | aclk400_mcuisp 395 Exynos4x12 | ||
256 | |||
257 | [Div Clocks] | ||
258 | |||
259 | Clock ID SoC (if specific) | ||
260 | ----------------------------------------------- | ||
261 | |||
262 | div_isp0 450 Exynos4x12 | ||
263 | div_isp1 451 Exynos4x12 | ||
264 | div_mcuisp0 452 Exynos4x12 | ||
265 | div_mcuisp1 453 Exynos4x12 | ||
266 | div_aclk200 454 Exynos4x12 | ||
267 | div_aclk400_mcuisp 455 Exynos4x12 | ||
268 | |||
269 | |||
270 | Example 1: An example of a clock controller node is listed below. | ||
271 | |||
272 | clock: clock-controller@0x10030000 { | ||
273 | compatible = "samsung,exynos4210-clock"; | ||
274 | reg = <0x10030000 0x20000>; | ||
275 | #clock-cells = <1>; | ||
276 | }; | ||
277 | |||
278 | Example 2: UART controller node that consumes the clock generated by the clock | ||
279 | controller. Refer to the standard clock bindings for information | ||
280 | about 'clocks' and 'clock-names' property. | ||
281 | |||
282 | serial@13820000 { | ||
283 | compatible = "samsung,exynos4210-uart"; | ||
284 | reg = <0x13820000 0x100>; | ||
285 | interrupts = <0 54 0>; | ||
286 | clocks = <&clock 314>, <&clock 153>; | ||
287 | clock-names = "uart", "clk_uart_baud0"; | ||
288 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt new file mode 100644 index 000000000000..781a6276adf7 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt | |||
@@ -0,0 +1,177 @@ | |||
1 | * Samsung Exynos5250 Clock Controller | ||
2 | |||
3 | The Exynos5250 clock controller generates and supplies clock to various | ||
4 | controllers within the Exynos5250 SoC. | ||
5 | |||
6 | Required Properties: | ||
7 | |||
8 | - comptible: should be one of the following. | ||
9 | - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC. | ||
10 | |||
11 | - reg: physical base address of the controller and length of memory mapped | ||
12 | region. | ||
13 | |||
14 | - #clock-cells: should be 1. | ||
15 | |||
16 | The following is the list of clocks generated by the controller. Each clock is | ||
17 | assigned an identifier and client nodes use this identifier to specify the | ||
18 | clock which they consume. | ||
19 | |||
20 | |||
21 | [Core Clocks] | ||
22 | |||
23 | Clock ID | ||
24 | ---------------------------- | ||
25 | |||
26 | fin_pll 1 | ||
27 | |||
28 | [Clock Gate for Special Clocks] | ||
29 | |||
30 | Clock ID | ||
31 | ---------------------------- | ||
32 | |||
33 | sclk_cam_bayer 128 | ||
34 | sclk_cam0 129 | ||
35 | sclk_cam1 130 | ||
36 | sclk_gscl_wa 131 | ||
37 | sclk_gscl_wb 132 | ||
38 | sclk_fimd1 133 | ||
39 | sclk_mipi1 134 | ||
40 | sclk_dp 135 | ||
41 | sclk_hdmi 136 | ||
42 | sclk_pixel 137 | ||
43 | sclk_audio0 138 | ||
44 | sclk_mmc0 139 | ||
45 | sclk_mmc1 140 | ||
46 | sclk_mmc2 141 | ||
47 | sclk_mmc3 142 | ||
48 | sclk_sata 143 | ||
49 | sclk_usb3 144 | ||
50 | sclk_jpeg 145 | ||
51 | sclk_uart0 146 | ||
52 | sclk_uart1 147 | ||
53 | sclk_uart2 148 | ||
54 | sclk_uart3 149 | ||
55 | sclk_pwm 150 | ||
56 | sclk_audio1 151 | ||
57 | sclk_audio2 152 | ||
58 | sclk_spdif 153 | ||
59 | sclk_spi0 154 | ||
60 | sclk_spi1 155 | ||
61 | sclk_spi2 156 | ||
62 | |||
63 | |||
64 | [Peripheral Clock Gates] | ||
65 | |||
66 | Clock ID | ||
67 | ---------------------------- | ||
68 | |||
69 | gscl0 256 | ||
70 | gscl1 257 | ||
71 | gscl2 258 | ||
72 | gscl3 259 | ||
73 | gscl_wa 260 | ||
74 | gscl_wb 261 | ||
75 | smmu_gscl0 262 | ||
76 | smmu_gscl1 263 | ||
77 | smmu_gscl2 264 | ||
78 | smmu_gscl3 265 | ||
79 | mfc 266 | ||
80 | smmu_mfcl 267 | ||
81 | smmu_mfcr 268 | ||
82 | rotator 269 | ||
83 | jpeg 270 | ||
84 | mdma1 271 | ||
85 | smmu_rotator 272 | ||
86 | smmu_jpeg 273 | ||
87 | smmu_mdma1 274 | ||
88 | pdma0 275 | ||
89 | pdma1 276 | ||
90 | sata 277 | ||
91 | usbotg 278 | ||
92 | mipi_hsi 279 | ||
93 | sdmmc0 280 | ||
94 | sdmmc1 281 | ||
95 | sdmmc2 282 | ||
96 | sdmmc3 283 | ||
97 | sromc 284 | ||
98 | usb2 285 | ||
99 | usb3 286 | ||
100 | sata_phyctrl 287 | ||
101 | sata_phyi2c 288 | ||
102 | uart0 289 | ||
103 | uart1 290 | ||
104 | uart2 291 | ||
105 | uart3 292 | ||
106 | uart4 293 | ||
107 | i2c0 294 | ||
108 | i2c1 295 | ||
109 | i2c2 296 | ||
110 | i2c3 297 | ||
111 | i2c4 298 | ||
112 | i2c5 299 | ||
113 | i2c6 300 | ||
114 | i2c7 301 | ||
115 | i2c_hdmi 302 | ||
116 | adc 303 | ||
117 | spi0 304 | ||
118 | spi1 305 | ||
119 | spi2 306 | ||
120 | i2s1 307 | ||
121 | i2s2 308 | ||
122 | pcm1 309 | ||
123 | pcm2 310 | ||
124 | pwm 311 | ||
125 | spdif 312 | ||
126 | ac97 313 | ||
127 | hsi2c0 314 | ||
128 | hsi2c1 315 | ||
129 | hs12c2 316 | ||
130 | hs12c3 317 | ||
131 | chipid 318 | ||
132 | sysreg 319 | ||
133 | pmu 320 | ||
134 | cmu_top 321 | ||
135 | cmu_core 322 | ||
136 | cmu_mem 323 | ||
137 | tzpc0 324 | ||
138 | tzpc1 325 | ||
139 | tzpc2 326 | ||
140 | tzpc3 327 | ||
141 | tzpc4 328 | ||
142 | tzpc5 329 | ||
143 | tzpc6 330 | ||
144 | tzpc7 331 | ||
145 | tzpc8 332 | ||
146 | tzpc9 333 | ||
147 | hdmi_cec 334 | ||
148 | mct 335 | ||
149 | wdt 336 | ||
150 | rtc 337 | ||
151 | tmu 338 | ||
152 | fimd1 339 | ||
153 | mie1 340 | ||
154 | dsim0 341 | ||
155 | dp 342 | ||
156 | mixer 343 | ||
157 | hdmi 345 | ||
158 | |||
159 | Example 1: An example of a clock controller node is listed below. | ||
160 | |||
161 | clock: clock-controller@0x10010000 { | ||
162 | compatible = "samsung,exynos5250-clock"; | ||
163 | reg = <0x10010000 0x30000>; | ||
164 | #clock-cells = <1>; | ||
165 | }; | ||
166 | |||
167 | Example 2: UART controller node that consumes the clock generated by the clock | ||
168 | controller. Refer to the standard clock bindings for information | ||
169 | about 'clocks' and 'clock-names' property. | ||
170 | |||
171 | serial@13820000 { | ||
172 | compatible = "samsung,exynos4210-uart"; | ||
173 | reg = <0x13820000 0x100>; | ||
174 | interrupts = <0 54 0>; | ||
175 | clocks = <&clock 314>, <&clock 153>; | ||
176 | clock-names = "uart", "clk_uart_baud0"; | ||
177 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5440-clock.txt b/Documentation/devicetree/bindings/clock/exynos5440-clock.txt new file mode 100644 index 000000000000..4499e9966bc9 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/exynos5440-clock.txt | |||
@@ -0,0 +1,61 @@ | |||
1 | * Samsung Exynos5440 Clock Controller | ||
2 | |||
3 | The Exynos5440 clock controller generates and supplies clock to various | ||
4 | controllers within the Exynos5440 SoC. | ||
5 | |||
6 | Required Properties: | ||
7 | |||
8 | - comptible: should be "samsung,exynos5440-clock". | ||
9 | |||
10 | - reg: physical base address of the controller and length of memory mapped | ||
11 | region. | ||
12 | |||
13 | - #clock-cells: should be 1. | ||
14 | |||
15 | The following is the list of clocks generated by the controller. Each clock is | ||
16 | assigned an identifier and client nodes use this identifier to specify the | ||
17 | clock which they consume. | ||
18 | |||
19 | |||
20 | [Core Clocks] | ||
21 | |||
22 | Clock ID | ||
23 | ---------------------------- | ||
24 | |||
25 | xtal 1 | ||
26 | arm_clk 2 | ||
27 | |||
28 | [Peripheral Clock Gates] | ||
29 | |||
30 | Clock ID | ||
31 | ---------------------------- | ||
32 | |||
33 | spi_baud 16 | ||
34 | pb0_250 17 | ||
35 | pr0_250 18 | ||
36 | pr1_250 19 | ||
37 | b_250 20 | ||
38 | b_125 21 | ||
39 | b_200 22 | ||
40 | sata 23 | ||
41 | usb 24 | ||
42 | gmac0 25 | ||
43 | cs250 26 | ||
44 | pb0_250_o 27 | ||
45 | pr0_250_o 28 | ||
46 | pr1_250_o 29 | ||
47 | b_250_o 30 | ||
48 | b_125_o 31 | ||
49 | b_200_o 32 | ||
50 | sata_o 33 | ||
51 | usb_o 34 | ||
52 | gmac0_o 35 | ||
53 | cs250_o 36 | ||
54 | |||
55 | Example: An example of a clock controller node is listed below. | ||
56 | |||
57 | clock: clock-controller@0x10010000 { | ||
58 | compatible = "samsung,exynos5440-clock"; | ||
59 | reg = <0x160000 0x10000>; | ||
60 | #clock-cells = <1>; | ||
61 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt new file mode 100644 index 000000000000..d6cb083b90a2 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt | |||
@@ -0,0 +1,303 @@ | |||
1 | NVIDIA Tegra114 Clock And Reset Controller | ||
2 | |||
3 | This binding uses the common clock binding: | ||
4 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
5 | |||
6 | The CAR (Clock And Reset) Controller on Tegra is the HW module responsible | ||
7 | for muxing and gating Tegra's clocks, and setting their rates. | ||
8 | |||
9 | Required properties : | ||
10 | - compatible : Should be "nvidia,tegra114-car" | ||
11 | - reg : Should contain CAR registers location and length | ||
12 | - clocks : Should contain phandle and clock specifiers for two clocks: | ||
13 | the 32 KHz "32k_in", and the board-specific oscillator "osc". | ||
14 | - #clock-cells : Should be 1. | ||
15 | In clock consumers, this cell represents the clock ID exposed by the CAR. | ||
16 | |||
17 | The first 160 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB | ||
18 | registers. These IDs often match those in the CAR's RST_DEVICES registers, | ||
19 | but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In | ||
20 | this case, those clocks are assigned IDs above 160 in order to highlight | ||
21 | this issue. Implementations that interpret these clock IDs as bit values | ||
22 | within the CLK_OUT_ENB or RST_DEVICES registers should be careful to | ||
23 | explicitly handle these special cases. | ||
24 | |||
25 | The balance of the clocks controlled by the CAR are assigned IDs of 160 and | ||
26 | above. | ||
27 | |||
28 | 0 unassigned | ||
29 | 1 unassigned | ||
30 | 2 unassigned | ||
31 | 3 unassigned | ||
32 | 4 rtc | ||
33 | 5 timer | ||
34 | 6 uarta | ||
35 | 7 unassigned (register bit affects uartb and vfir) | ||
36 | 8 unassigned | ||
37 | 9 sdmmc2 | ||
38 | 10 unassigned (register bit affects spdif_in and spdif_out) | ||
39 | 11 i2s1 | ||
40 | 12 i2c1 | ||
41 | 13 ndflash | ||
42 | 14 sdmmc1 | ||
43 | 15 sdmmc4 | ||
44 | 16 unassigned | ||
45 | 17 pwm | ||
46 | 18 i2s2 | ||
47 | 19 epp | ||
48 | 20 unassigned (register bit affects vi and vi_sensor) | ||
49 | 21 2d | ||
50 | 22 usbd | ||
51 | 23 isp | ||
52 | 24 3d | ||
53 | 25 unassigned | ||
54 | 26 disp2 | ||
55 | 27 disp1 | ||
56 | 28 host1x | ||
57 | 29 vcp | ||
58 | 30 i2s0 | ||
59 | 31 unassigned | ||
60 | |||
61 | 32 unassigned | ||
62 | 33 unassigned | ||
63 | 34 apbdma | ||
64 | 35 unassigned | ||
65 | 36 kbc | ||
66 | 37 unassigned | ||
67 | 38 unassigned | ||
68 | 39 unassigned (register bit affects fuse and fuse_burn) | ||
69 | 40 kfuse | ||
70 | 41 sbc1 | ||
71 | 42 nor | ||
72 | 43 unassigned | ||
73 | 44 sbc2 | ||
74 | 45 unassigned | ||
75 | 46 sbc3 | ||
76 | 47 i2c5 | ||
77 | 48 dsia | ||
78 | 49 unassigned | ||
79 | 50 mipi | ||
80 | 51 hdmi | ||
81 | 52 csi | ||
82 | 53 unassigned | ||
83 | 54 i2c2 | ||
84 | 55 uartc | ||
85 | 56 mipi-cal | ||
86 | 57 emc | ||
87 | 58 usb2 | ||
88 | 59 usb3 | ||
89 | 60 msenc | ||
90 | 61 vde | ||
91 | 62 bsea | ||
92 | 63 bsev | ||
93 | |||
94 | 64 unassigned | ||
95 | 65 uartd | ||
96 | 66 unassigned | ||
97 | 67 i2c3 | ||
98 | 68 sbc4 | ||
99 | 69 sdmmc3 | ||
100 | 70 unassigned | ||
101 | 71 owr | ||
102 | 72 afi | ||
103 | 73 csite | ||
104 | 74 unassigned | ||
105 | 75 unassigned | ||
106 | 76 la | ||
107 | 77 trace | ||
108 | 78 soc_therm | ||
109 | 79 dtv | ||
110 | 80 ndspeed | ||
111 | 81 i2cslow | ||
112 | 82 dsib | ||
113 | 83 tsec | ||
114 | 84 unassigned | ||
115 | 85 unassigned | ||
116 | 86 unassigned | ||
117 | 87 unassigned | ||
118 | 88 unassigned | ||
119 | 89 xusb_host | ||
120 | 90 unassigned | ||
121 | 91 msenc | ||
122 | 92 csus | ||
123 | 93 unassigned | ||
124 | 94 unassigned | ||
125 | 95 unassigned (bit affects xusb_dev and xusb_dev_src) | ||
126 | |||
127 | 96 unassigned | ||
128 | 97 unassigned | ||
129 | 98 unassigned | ||
130 | 99 mselect | ||
131 | 100 tsensor | ||
132 | 101 i2s3 | ||
133 | 102 i2s4 | ||
134 | 103 i2c4 | ||
135 | 104 sbc5 | ||
136 | 105 sbc6 | ||
137 | 106 d_audio | ||
138 | 107 apbif | ||
139 | 108 dam0 | ||
140 | 109 dam1 | ||
141 | 110 dam2 | ||
142 | 111 hda2codec_2x | ||
143 | 112 unassigned | ||
144 | 113 audio0_2x | ||
145 | 114 audio1_2x | ||
146 | 115 audio2_2x | ||
147 | 116 audio3_2x | ||
148 | 117 audio4_2x | ||
149 | 118 spdif_2x | ||
150 | 119 actmon | ||
151 | 120 extern1 | ||
152 | 121 extern2 | ||
153 | 122 extern3 | ||
154 | 123 unassigned | ||
155 | 124 unassigned | ||
156 | 125 hda | ||
157 | 126 unassigned | ||
158 | 127 se | ||
159 | |||
160 | 128 hda2hdmi | ||
161 | 129 unassigned | ||
162 | 130 unassigned | ||
163 | 131 unassigned | ||
164 | 132 unassigned | ||
165 | 133 unassigned | ||
166 | 134 unassigned | ||
167 | 135 unassigned | ||
168 | 136 unassigned | ||
169 | 137 unassigned | ||
170 | 138 unassigned | ||
171 | 139 unassigned | ||
172 | 140 unassigned | ||
173 | 141 unassigned | ||
174 | 142 unassigned | ||
175 | 143 unassigned (bit affects xusb_falcon_src, xusb_fs_src, | ||
176 | xusb_host_src and xusb_ss_src) | ||
177 | 144 cilab | ||
178 | 145 cilcd | ||
179 | 146 cile | ||
180 | 147 dsialp | ||
181 | 148 dsiblp | ||
182 | 149 unassigned | ||
183 | 150 dds | ||
184 | 151 unassigned | ||
185 | 152 dp2 | ||
186 | 153 amx | ||
187 | 154 adx | ||
188 | 155 unassigned (bit affects dfll_ref and dfll_soc) | ||
189 | 156 xusb_ss | ||
190 | |||
191 | 192 uartb | ||
192 | 193 vfir | ||
193 | 194 spdif_in | ||
194 | 195 spdif_out | ||
195 | 196 vi | ||
196 | 197 vi_sensor | ||
197 | 198 fuse | ||
198 | 199 fuse_burn | ||
199 | 200 clk_32k | ||
200 | 201 clk_m | ||
201 | 202 clk_m_div2 | ||
202 | 203 clk_m_div4 | ||
203 | 204 pll_ref | ||
204 | 205 pll_c | ||
205 | 206 pll_c_out1 | ||
206 | 207 pll_c2 | ||
207 | 208 pll_c3 | ||
208 | 209 pll_m | ||
209 | 210 pll_m_out1 | ||
210 | 211 pll_p | ||
211 | 212 pll_p_out1 | ||
212 | 213 pll_p_out2 | ||
213 | 214 pll_p_out3 | ||
214 | 215 pll_p_out4 | ||
215 | 216 pll_a | ||
216 | 217 pll_a_out0 | ||
217 | 218 pll_d | ||
218 | 219 pll_d_out0 | ||
219 | 220 pll_d2 | ||
220 | 221 pll_d2_out0 | ||
221 | 222 pll_u | ||
222 | 223 pll_u_480M | ||
223 | 224 pll_u_60M | ||
224 | 225 pll_u_48M | ||
225 | 226 pll_u_12M | ||
226 | 227 pll_x | ||
227 | 228 pll_x_out0 | ||
228 | 229 pll_re_vco | ||
229 | 230 pll_re_out | ||
230 | 231 pll_e_out0 | ||
231 | 232 spdif_in_sync | ||
232 | 233 i2s0_sync | ||
233 | 234 i2s1_sync | ||
234 | 235 i2s2_sync | ||
235 | 236 i2s3_sync | ||
236 | 237 i2s4_sync | ||
237 | 238 vimclk_sync | ||
238 | 239 audio0 | ||
239 | 240 audio1 | ||
240 | 241 audio2 | ||
241 | 242 audio3 | ||
242 | 243 audio4 | ||
243 | 244 spdif | ||
244 | 245 clk_out_1 | ||
245 | 246 clk_out_2 | ||
246 | 247 clk_out_3 | ||
247 | 248 blink | ||
248 | 252 xusb_host_src | ||
249 | 253 xusb_falcon_src | ||
250 | 254 xusb_fs_src | ||
251 | 255 xusb_ss_src | ||
252 | 256 xusb_dev_src | ||
253 | 257 xusb_dev | ||
254 | 258 xusb_hs_src | ||
255 | 259 sclk | ||
256 | 260 hclk | ||
257 | 261 pclk | ||
258 | 262 cclk_g | ||
259 | 263 cclk_lp | ||
260 | 264 dfll_ref | ||
261 | 265 dfll_soc | ||
262 | |||
263 | Example SoC include file: | ||
264 | |||
265 | / { | ||
266 | tegra_car: clock { | ||
267 | compatible = "nvidia,tegra114-car"; | ||
268 | reg = <0x60006000 0x1000>; | ||
269 | #clock-cells = <1>; | ||
270 | }; | ||
271 | |||
272 | usb@c5004000 { | ||
273 | clocks = <&tegra_car 58>; /* usb2 */ | ||
274 | }; | ||
275 | }; | ||
276 | |||
277 | Example board file: | ||
278 | |||
279 | / { | ||
280 | clocks { | ||
281 | compatible = "simple-bus"; | ||
282 | #address-cells = <1>; | ||
283 | #size-cells = <0>; | ||
284 | |||
285 | osc: clock@0 { | ||
286 | compatible = "fixed-clock"; | ||
287 | reg = <0>; | ||
288 | #clock-cells = <0>; | ||
289 | clock-frequency = <12000000>; | ||
290 | }; | ||
291 | |||
292 | clk_32k: clock@1 { | ||
293 | compatible = "fixed-clock"; | ||
294 | reg = <1>; | ||
295 | #clock-cells = <0>; | ||
296 | clock-frequency = <32768>; | ||
297 | }; | ||
298 | }; | ||
299 | |||
300 | &tegra_car { | ||
301 | clocks = <&clk_32k> <&osc>; | ||
302 | }; | ||
303 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt index 0921fac73528..e885680f6b45 100644 --- a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt | |||
@@ -120,8 +120,8 @@ Required properties : | |||
120 | 90 clk_d | 120 | 90 clk_d |
121 | 91 unassigned | 121 | 91 unassigned |
122 | 92 sus | 122 | 92 sus |
123 | 93 cdev1 | 123 | 93 cdev2 |
124 | 94 cdev2 | 124 | 94 cdev1 |
125 | 95 unassigned | 125 | 95 unassigned |
126 | 126 | ||
127 | 96 uart2 | 127 | 96 uart2 |
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt new file mode 100644 index 000000000000..20b8479c2760 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/sunxi.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | Device Tree Clock bindings for arch-sunxi | ||
2 | |||
3 | This binding uses the common clock binding[1]. | ||
4 | |||
5 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
6 | |||
7 | Required properties: | ||
8 | - compatible : shall be one of the following: | ||
9 | "allwinner,sun4i-osc-clk" - for a gatable oscillator | ||
10 | "allwinner,sun4i-pll1-clk" - for the main PLL clock | ||
11 | "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock | ||
12 | "allwinner,sun4i-axi-clk" - for the AXI clock | ||
13 | "allwinner,sun4i-ahb-clk" - for the AHB clock | ||
14 | "allwinner,sun4i-apb0-clk" - for the APB0 clock | ||
15 | "allwinner,sun4i-apb1-clk" - for the APB1 clock | ||
16 | "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing | ||
17 | |||
18 | Required properties for all clocks: | ||
19 | - reg : shall be the control register address for the clock. | ||
20 | - clocks : shall be the input parent clock(s) phandle for the clock | ||
21 | - #clock-cells : from common clock binding; shall be set to 0. | ||
22 | |||
23 | For example: | ||
24 | |||
25 | osc24M: osc24M@01c20050 { | ||
26 | #clock-cells = <0>; | ||
27 | compatible = "allwinner,sun4i-osc-clk"; | ||
28 | reg = <0x01c20050 0x4>; | ||
29 | clocks = <&osc24M_fixed>; | ||
30 | }; | ||
31 | |||
32 | pll1: pll1@01c20000 { | ||
33 | #clock-cells = <0>; | ||
34 | compatible = "allwinner,sun4i-pll1-clk"; | ||
35 | reg = <0x01c20000 0x4>; | ||
36 | clocks = <&osc24M>; | ||
37 | }; | ||
38 | |||
39 | cpu: cpu@01c20054 { | ||
40 | #clock-cells = <0>; | ||
41 | compatible = "allwinner,sun4i-cpu-clk"; | ||
42 | reg = <0x01c20054 0x4>; | ||
43 | clocks = <&osc32k>, <&osc24M>, <&pll1>; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-vt8500.txt b/Documentation/devicetree/bindings/gpio/gpio-vt8500.txt deleted file mode 100644 index f4dc5233167e..000000000000 --- a/Documentation/devicetree/bindings/gpio/gpio-vt8500.txt +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | VIA/Wondermedia VT8500 GPIO Controller | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Required properties: | ||
5 | - compatible : "via,vt8500-gpio", "wm,wm8505-gpio" | ||
6 | or "wm,wm8650-gpio" depending on your SoC | ||
7 | - reg : Should contain 1 register range (address and length) | ||
8 | - #gpio-cells : should be <3>. | ||
9 | 1) bank | ||
10 | 2) pin number | ||
11 | 3) flags - should be 0 | ||
12 | |||
13 | Example: | ||
14 | |||
15 | gpio: gpio-controller@d8110000 { | ||
16 | compatible = "via,vt8500-gpio"; | ||
17 | gpio-controller; | ||
18 | reg = <0xd8110000 0x10000>; | ||
19 | #gpio-cells = <3>; | ||
20 | }; | ||
21 | |||
22 | vibrate { | ||
23 | gpios = <&gpio 0 1 0>; /* Bank 0, Pin 1, No flags */ | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/interrupt-controller/samsung,s3c24xx-irq.txt b/Documentation/devicetree/bindings/interrupt-controller/samsung,s3c24xx-irq.txt new file mode 100644 index 000000000000..c54c5a9a2a90 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/samsung,s3c24xx-irq.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | Samsung S3C24XX Interrupt Controllers | ||
2 | |||
3 | The S3C24XX SoCs contain a custom set of interrupt controllers providing a | ||
4 | varying number of interrupt sources. The set consists of a main- and sub- | ||
5 | controller and on newer SoCs even a second main controller. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible: Compatible property value should be "samsung,s3c2410-irq" | ||
9 | for machines before s3c2416 and "samsung,s3c2416-irq" for s3c2416 and later. | ||
10 | |||
11 | - reg: Physical base address of the controller and length of memory mapped | ||
12 | region. | ||
13 | |||
14 | - interrupt-controller : Identifies the node as an interrupt controller | ||
15 | |||
16 | - #interrupt-cells : Specifies the number of cells needed to encode an | ||
17 | interrupt source. The value shall be 4 and interrupt descriptor shall | ||
18 | have the following format: | ||
19 | <ctrl_num parent_irq ctrl_irq type> | ||
20 | |||
21 | ctrl_num contains the controller to use: | ||
22 | - 0 ... main controller | ||
23 | - 1 ... sub controller | ||
24 | - 2 ... second main controller on s3c2416 and s3c2450 | ||
25 | parent_irq contains the parent bit in the main controller and will be | ||
26 | ignored in main controllers | ||
27 | ctrl_irq contains the interrupt bit of the controller | ||
28 | type contains the trigger type to use | ||
29 | |||
30 | Example: | ||
31 | |||
32 | interrupt-controller@4a000000 { | ||
33 | compatible = "samsung,s3c2410-irq"; | ||
34 | reg = <0x4a000000 0x100>; | ||
35 | interrupt-controller; | ||
36 | #interrupt-cells=<4>; | ||
37 | }; | ||
38 | |||
39 | [...] | ||
40 | |||
41 | serial@50000000 { | ||
42 | compatible = "samsung,s3c2410-uart"; | ||
43 | reg = <0x50000000 0x4000>; | ||
44 | interrupt-parent = <&subintc>; | ||
45 | interrupts = <1 28 0 4>, <1 28 1 4>; | ||
46 | }; | ||
47 | |||
48 | rtc@57000000 { | ||
49 | compatible = "samsung,s3c2410-rtc"; | ||
50 | reg = <0x57000000 0x100>; | ||
51 | interrupt-parent = <&intc>; | ||
52 | interrupts = <0 30 0 3>, <0 8 0 3>; | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt index 67ec3d4ccc7f..bf0182d8da25 100644 --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt | |||
@@ -21,3 +21,24 @@ Required properties: | |||
21 | 21 | ||
22 | - samsung,mfc-l : Base address of the second memory bank used by MFC | 22 | - samsung,mfc-l : Base address of the second memory bank used by MFC |
23 | for DMA contiguous memory allocation and its size. | 23 | for DMA contiguous memory allocation and its size. |
24 | |||
25 | Optional properties: | ||
26 | - samsung,power-domain : power-domain property defined with a phandle | ||
27 | to respective power domain. | ||
28 | |||
29 | Example: | ||
30 | SoC specific DT entry: | ||
31 | |||
32 | mfc: codec@13400000 { | ||
33 | compatible = "samsung,mfc-v5"; | ||
34 | reg = <0x13400000 0x10000>; | ||
35 | interrupts = <0 94 0>; | ||
36 | samsung,power-domain = <&pd_mfc>; | ||
37 | }; | ||
38 | |||
39 | Board specific DT entry: | ||
40 | |||
41 | codec@13400000 { | ||
42 | samsung,mfc-r = <0x43000000 0x800000>; | ||
43 | samsung,mfc-l = <0x51000000 0x800000>; | ||
44 | }; | ||
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nor.txt b/Documentation/devicetree/bindings/mtd/gpmc-nor.txt new file mode 100644 index 000000000000..420b3ab18890 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/gpmc-nor.txt | |||
@@ -0,0 +1,98 @@ | |||
1 | Device tree bindings for NOR flash connect to TI GPMC | ||
2 | |||
3 | NOR flash connected to the TI GPMC (found on OMAP boards) are represented as | ||
4 | child nodes of the GPMC controller with a name of "nor". | ||
5 | |||
6 | All timing relevant properties as well as generic GPMC child properties are | ||
7 | explained in a separate documents. Please refer to | ||
8 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
9 | |||
10 | Required properties: | ||
11 | - bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and | ||
12 | 16-bit devices and so must be either 1 or 2 bytes. | ||
13 | - compatible: Documentation/devicetree/bindings/mtd/mtd-physmap.txt | ||
14 | - gpmc,cs-on-ns: Chip-select assertion time | ||
15 | - gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads | ||
16 | - gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes | ||
17 | - gpmc,oe-on-ns: Output-enable assertion time | ||
18 | - gpmc,oe-off-ns: Output-enable de-assertion time | ||
19 | - gpmc,we-on-ns Write-enable assertion time | ||
20 | - gpmc,we-off-ns: Write-enable de-assertion time | ||
21 | - gpmc,access-ns: Start cycle to first data capture (read access) | ||
22 | - gpmc,rd-cycle-ns: Total read cycle time | ||
23 | - gpmc,wr-cycle-ns: Total write cycle time | ||
24 | - linux,mtd-name: Documentation/devicetree/bindings/mtd/mtd-physmap.txt | ||
25 | - reg: Chip-select, base address (relative to chip-select) | ||
26 | and size of NOR flash. Note that base address will be | ||
27 | typically 0 as this is the start of the chip-select. | ||
28 | |||
29 | Optional properties: | ||
30 | - gpmc,XXX Additional GPMC timings and settings parameters. See | ||
31 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
32 | |||
33 | Optional properties for partiton table parsing: | ||
34 | - #address-cells: should be set to 1 | ||
35 | - #size-cells: should be set to 1 | ||
36 | |||
37 | Example: | ||
38 | |||
39 | gpmc: gpmc@6e000000 { | ||
40 | compatible = "ti,omap3430-gpmc", "simple-bus"; | ||
41 | ti,hwmods = "gpmc"; | ||
42 | reg = <0x6e000000 0x1000>; | ||
43 | interrupts = <20>; | ||
44 | gpmc,num-cs = <8>; | ||
45 | gpmc,num-waitpins = <4>; | ||
46 | #address-cells = <2>; | ||
47 | #size-cells = <1>; | ||
48 | |||
49 | ranges = <0 0 0x10000000 0x08000000>; | ||
50 | |||
51 | nor@0,0 { | ||
52 | compatible = "cfi-flash"; | ||
53 | linux,mtd-name= "intel,pf48f6000m0y1be"; | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <1>; | ||
56 | reg = <0 0 0x08000000>; | ||
57 | bank-width = <2>; | ||
58 | |||
59 | gpmc,mux-add-data; | ||
60 | gpmc,cs-on-ns = <0>; | ||
61 | gpmc,cs-rd-off-ns = <186>; | ||
62 | gpmc,cs-wr-off-ns = <186>; | ||
63 | gpmc,adv-on-ns = <12>; | ||
64 | gpmc,adv-rd-off-ns = <48>; | ||
65 | gpmc,adv-wr-off-ns = <48>; | ||
66 | gpmc,oe-on-ns = <54>; | ||
67 | gpmc,oe-off-ns = <168>; | ||
68 | gpmc,we-on-ns = <54>; | ||
69 | gpmc,we-off-ns = <168>; | ||
70 | gpmc,rd-cycle-ns = <186>; | ||
71 | gpmc,wr-cycle-ns = <186>; | ||
72 | gpmc,access-ns = <114>; | ||
73 | gpmc,page-burst-access-ns = <6>; | ||
74 | gpmc,bus-turnaround-ns = <12>; | ||
75 | gpmc,cycle2cycle-delay-ns = <18>; | ||
76 | gpmc,wr-data-mux-bus-ns = <90>; | ||
77 | gpmc,wr-access-ns = <186>; | ||
78 | gpmc,cycle2cycle-samecsen; | ||
79 | gpmc,cycle2cycle-diffcsen; | ||
80 | |||
81 | partition@0 { | ||
82 | label = "bootloader-nor"; | ||
83 | reg = <0 0x40000>; | ||
84 | }; | ||
85 | partition@0x40000 { | ||
86 | label = "params-nor"; | ||
87 | reg = <0x40000 0x40000>; | ||
88 | }; | ||
89 | partition@0x80000 { | ||
90 | label = "kernel-nor"; | ||
91 | reg = <0x80000 0x200000>; | ||
92 | }; | ||
93 | partition@0x280000 { | ||
94 | label = "filesystem-nor"; | ||
95 | reg = <0x240000 0x7d80000>; | ||
96 | }; | ||
97 | }; | ||
98 | }; | ||
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt b/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt index deec9da224a2..b7529424ac88 100644 --- a/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt +++ b/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt | |||
@@ -10,6 +10,8 @@ Documentation/devicetree/bindings/bus/ti-gpmc.txt | |||
10 | Required properties: | 10 | Required properties: |
11 | 11 | ||
12 | - reg: The CS line the peripheral is connected to | 12 | - reg: The CS line the peripheral is connected to |
13 | - gpmc,device-width Width of the ONENAND device connected to the GPMC | ||
14 | in bytes. Must be 1 or 2. | ||
13 | 15 | ||
14 | Optional properties: | 16 | Optional properties: |
15 | 17 | ||
@@ -34,6 +36,7 @@ Example for an OMAP3430 board: | |||
34 | 36 | ||
35 | onenand@0 { | 37 | onenand@0 { |
36 | reg = <0 0 0>; /* CS0, offset 0 */ | 38 | reg = <0 0 0>; /* CS0, offset 0 */ |
39 | gpmc,device-width = <2>; | ||
37 | 40 | ||
38 | #address-cells = <1>; | 41 | #address-cells = <1>; |
39 | #size-cells = <1>; | 42 | #size-cells = <1>; |
diff --git a/Documentation/devicetree/bindings/net/gpmc-eth.txt b/Documentation/devicetree/bindings/net/gpmc-eth.txt new file mode 100644 index 000000000000..24cb4e46f675 --- /dev/null +++ b/Documentation/devicetree/bindings/net/gpmc-eth.txt | |||
@@ -0,0 +1,97 @@ | |||
1 | Device tree bindings for Ethernet chip connected to TI GPMC | ||
2 | |||
3 | Besides being used to interface with external memory devices, the | ||
4 | General-Purpose Memory Controller can be used to connect Pseudo-SRAM devices | ||
5 | such as ethernet controllers to processors using the TI GPMC as a data bus. | ||
6 | |||
7 | Ethernet controllers connected to TI GPMC are represented as child nodes of | ||
8 | the GPMC controller with an "ethernet" name. | ||
9 | |||
10 | All timing relevant properties as well as generic GPMC child properties are | ||
11 | explained in a separate documents. Please refer to | ||
12 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
13 | |||
14 | For the properties relevant to the ethernet controller connected to the GPMC | ||
15 | refer to the binding documentation of the device. For example, the documentation | ||
16 | for the SMSC 911x is Documentation/devicetree/bindings/net/smsc911x.txt | ||
17 | |||
18 | Child nodes need to specify the GPMC bus address width using the "bank-width" | ||
19 | property but is possible that an ethernet controller also has a property to | ||
20 | specify the I/O registers address width. Even when the GPMC has a maximum 16-bit | ||
21 | address width, it supports devices with 32-bit word registers. | ||
22 | For example with an SMSC LAN911x/912x controller connected to the TI GPMC on an | ||
23 | OMAP2+ board, "bank-width = <2>;" and "reg-io-width = <4>;". | ||
24 | |||
25 | Required properties: | ||
26 | - bank-width: Address width of the device in bytes. GPMC supports 8-bit | ||
27 | and 16-bit devices and so must be either 1 or 2 bytes. | ||
28 | - compatible: Compatible string property for the ethernet child device. | ||
29 | - gpmc,cs-on: Chip-select assertion time | ||
30 | - gpmc,cs-rd-off: Chip-select de-assertion time for reads | ||
31 | - gpmc,cs-wr-off: Chip-select de-assertion time for writes | ||
32 | - gpmc,oe-on: Output-enable assertion time | ||
33 | - gpmc,oe-off Output-enable de-assertion time | ||
34 | - gpmc,we-on: Write-enable assertion time | ||
35 | - gpmc,we-off: Write-enable de-assertion time | ||
36 | - gpmc,access: Start cycle to first data capture (read access) | ||
37 | - gpmc,rd-cycle: Total read cycle time | ||
38 | - gpmc,wr-cycle: Total write cycle time | ||
39 | - reg: Chip-select, base address (relative to chip-select) | ||
40 | and size of the memory mapped for the device. | ||
41 | Note that base address will be typically 0 as this | ||
42 | is the start of the chip-select. | ||
43 | |||
44 | Optional properties: | ||
45 | - gpmc,XXX Additional GPMC timings and settings parameters. See | ||
46 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
47 | |||
48 | Example: | ||
49 | |||
50 | gpmc: gpmc@6e000000 { | ||
51 | compatible = "ti,omap3430-gpmc"; | ||
52 | ti,hwmods = "gpmc"; | ||
53 | reg = <0x6e000000 0x1000>; | ||
54 | interrupts = <20>; | ||
55 | gpmc,num-cs = <8>; | ||
56 | gpmc,num-waitpins = <4>; | ||
57 | #address-cells = <2>; | ||
58 | #size-cells = <1>; | ||
59 | |||
60 | ranges = <5 0 0x2c000000 0x1000000>; | ||
61 | |||
62 | ethernet@5,0 { | ||
63 | compatible = "smsc,lan9221", "smsc,lan9115"; | ||
64 | reg = <5 0 0xff>; | ||
65 | bank-width = <2>; | ||
66 | |||
67 | gpmc,mux-add-data; | ||
68 | gpmc,cs-on = <0>; | ||
69 | gpmc,cs-rd-off = <186>; | ||
70 | gpmc,cs-wr-off = <186>; | ||
71 | gpmc,adv-on = <12>; | ||
72 | gpmc,adv-rd-off = <48>; | ||
73 | gpmc,adv-wr-off = <48>; | ||
74 | gpmc,oe-on = <54>; | ||
75 | gpmc,oe-off = <168>; | ||
76 | gpmc,we-on = <54>; | ||
77 | gpmc,we-off = <168>; | ||
78 | gpmc,rd-cycle = <186>; | ||
79 | gpmc,wr-cycle = <186>; | ||
80 | gpmc,access = <114>; | ||
81 | gpmc,page-burst-access = <6>; | ||
82 | gpmc,bus-turnaround = <12>; | ||
83 | gpmc,cycle2cycle-delay = <18>; | ||
84 | gpmc,wr-data-mux-bus = <90>; | ||
85 | gpmc,wr-access = <186>; | ||
86 | gpmc,cycle2cycle-samecsen; | ||
87 | gpmc,cycle2cycle-diffcsen; | ||
88 | |||
89 | interrupt-parent = <&gpio6>; | ||
90 | interrupts = <16>; | ||
91 | vmmc-supply = <&vddvario>; | ||
92 | vmmc_aux-supply = <&vdd33a>; | ||
93 | reg-io-width = <4>; | ||
94 | |||
95 | smsc,save-mac-address; | ||
96 | }; | ||
97 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-vt8500.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-vt8500.txt new file mode 100644 index 000000000000..b3aa90f0ce44 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-vt8500.txt | |||
@@ -0,0 +1,57 @@ | |||
1 | VIA VT8500 and Wondermedia WM8xxx-series pinmux/gpio controller | ||
2 | |||
3 | These SoCs contain a combined Pinmux/GPIO module. Each pin may operate as | ||
4 | either a GPIO in, GPIO out or as an alternate function (I2C, SPI etc). | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "via,vt8500-pinctrl", "wm,wm8505-pinctrl", "wm,wm8650-pinctrl", | ||
8 | "wm8750-pinctrl" or "wm,wm8850-pinctrl" | ||
9 | - reg: Should contain the physical address of the module's registers. | ||
10 | - interrupt-controller: Marks the device node as an interrupt controller. | ||
11 | - #interrupt-cells: Should be two. | ||
12 | - gpio-controller: Marks the device node as a GPIO controller. | ||
13 | - #gpio-cells : Should be two. The first cell is the pin number and the | ||
14 | second cell is used to specify optional parameters. | ||
15 | bit 0 - active low | ||
16 | |||
17 | Please refer to ../gpio/gpio.txt for a general description of GPIO bindings. | ||
18 | |||
19 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
20 | common pinctrl bindings used by client devices, including the meaning of the | ||
21 | phrase "pin configuration node". | ||
22 | |||
23 | Each pin configuration node lists the pin(s) to which it applies, and one or | ||
24 | more of the mux functions to select on those pin(s), and pull-up/down | ||
25 | configuration. Each subnode only affects those parameters that are explicitly | ||
26 | listed. In other words, a subnode that lists only a mux function implies no | ||
27 | information about any pull configuration. Similarly, a subnode that lists only | ||
28 | a pull parameter implies no information about the mux function. | ||
29 | |||
30 | Required subnode-properties: | ||
31 | - wm,pins: An array of cells. Each cell contains the ID of a pin. | ||
32 | |||
33 | Optional subnode-properties: | ||
34 | - wm,function: Integer, containing the function to mux to the pin(s): | ||
35 | 0: GPIO in | ||
36 | 1: GPIO out | ||
37 | 2: alternate | ||
38 | |||
39 | - wm,pull: Integer, representing the pull-down/up to apply to the pin(s): | ||
40 | 0: none | ||
41 | 1: down | ||
42 | 2: up | ||
43 | |||
44 | Each of wm,function and wm,pull may contain either a single value which | ||
45 | will be applied to all pins in wm,pins, or one value for each entry in | ||
46 | wm,pins. | ||
47 | |||
48 | Example: | ||
49 | |||
50 | pinctrl: pinctrl { | ||
51 | compatible = "wm,wm8505-pinctrl"; | ||
52 | reg = <0xD8110000 0x10000>; | ||
53 | interrupt-controller; | ||
54 | #interrupt-cells = <2>; | ||
55 | gpio-controller; | ||
56 | #gpio-cells = <2>; | ||
57 | }; | ||
diff --git a/Documentation/devicetree/bindings/reset/reset.txt b/Documentation/devicetree/bindings/reset/reset.txt new file mode 100644 index 000000000000..31db6ff84908 --- /dev/null +++ b/Documentation/devicetree/bindings/reset/reset.txt | |||
@@ -0,0 +1,75 @@ | |||
1 | = Reset Signal Device Tree Bindings = | ||
2 | |||
3 | This binding is intended to represent the hardware reset signals present | ||
4 | internally in most IC (SoC, FPGA, ...) designs. Reset signals for whole | ||
5 | standalone chips are most likely better represented as GPIOs, although there | ||
6 | are likely to be exceptions to this rule. | ||
7 | |||
8 | Hardware blocks typically receive a reset signal. This signal is generated by | ||
9 | a reset provider (e.g. power management or clock module) and received by a | ||
10 | reset consumer (the module being reset, or a module managing when a sub- | ||
11 | ordinate module is reset). This binding exists to represent the provider and | ||
12 | consumer, and provide a way to couple the two together. | ||
13 | |||
14 | A reset signal is represented by the phandle of the provider, plus a reset | ||
15 | specifier - a list of DT cells that represents the reset signal within the | ||
16 | provider. The length (number of cells) and semantics of the reset specifier | ||
17 | are dictated by the binding of the reset provider, although common schemes | ||
18 | are described below. | ||
19 | |||
20 | A word on where to place reset signal consumers in device tree: It is possible | ||
21 | in hardware for a reset signal to affect multiple logically separate HW blocks | ||
22 | at once. In this case, it would be unwise to represent this reset signal in | ||
23 | the DT node of each affected HW block, since if activated, an unrelated block | ||
24 | may be reset. Instead, reset signals should be represented in the DT node | ||
25 | where it makes most sense to control it; this may be a bus node if all | ||
26 | children of the bus are affected by the reset signal, or an individual HW | ||
27 | block node for dedicated reset signals. The intent of this binding is to give | ||
28 | appropriate software access to the reset signals in order to manage the HW, | ||
29 | rather than to slavishly enumerate the reset signal that affects each HW | ||
30 | block. | ||
31 | |||
32 | = Reset providers = | ||
33 | |||
34 | Required properties: | ||
35 | #reset-cells: Number of cells in a reset specifier; Typically 0 for nodes | ||
36 | with a single reset output and 1 for nodes with multiple | ||
37 | reset outputs. | ||
38 | |||
39 | For example: | ||
40 | |||
41 | rst: reset-controller { | ||
42 | #reset-cells = <1>; | ||
43 | }; | ||
44 | |||
45 | = Reset consumers = | ||
46 | |||
47 | Required properties: | ||
48 | resets: List of phandle and reset specifier pairs, one pair | ||
49 | for each reset signal that affects the device, or that the | ||
50 | device manages. Note: if the reset provider specifies '0' for | ||
51 | #reset-cells, then only the phandle portion of the pair will | ||
52 | appear. | ||
53 | |||
54 | Optional properties: | ||
55 | reset-names: List of reset signal name strings sorted in the same order as | ||
56 | the resets property. Consumers drivers will use reset-names to | ||
57 | match reset signal names with reset specifiers. | ||
58 | |||
59 | For example: | ||
60 | |||
61 | device { | ||
62 | resets = <&rst 20>; | ||
63 | reset-names = "reset"; | ||
64 | }; | ||
65 | |||
66 | This represents a device with a single reset signal named "reset". | ||
67 | |||
68 | bus { | ||
69 | resets = <&rst 10> <&rst 11> <&rst 12> <&rst 11>; | ||
70 | reset-names = "i2s1", "i2s2", "dma", "mixer"; | ||
71 | }; | ||
72 | |||
73 | This represents a bus that controls the reset signal of each of four sub- | ||
74 | ordinate devices. Consider for example a bus that fails to operate unless no | ||
75 | child device has reset asserted. | ||
diff --git a/Documentation/devicetree/bindings/timer/cadence,ttc-timer.txt b/Documentation/devicetree/bindings/timer/cadence,ttc-timer.txt new file mode 100644 index 000000000000..993695c659e1 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/cadence,ttc-timer.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | Cadence TTC - Triple Timer Counter | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "cdns,ttc". | ||
5 | - reg : Specifies base physical address and size of the registers. | ||
6 | - interrupts : A list of 3 interrupts; one per timer channel. | ||
7 | - clocks: phandle to the source clock | ||
8 | |||
9 | Example: | ||
10 | |||
11 | ttc0: ttc0@f8001000 { | ||
12 | interrupt-parent = <&intc>; | ||
13 | interrupts = < 0 10 4 0 11 4 0 12 4 >; | ||
14 | compatible = "cdns,ttc"; | ||
15 | reg = <0xF8001000 0x1000>; | ||
16 | clocks = <&cpu_clk 3>; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt new file mode 100644 index 000000000000..cb47bfbcaeea --- /dev/null +++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt | |||
@@ -0,0 +1,68 @@ | |||
1 | Samsung's Multi Core Timer (MCT) | ||
2 | |||
3 | The Samsung's Multi Core Timer (MCT) module includes two main blocks, the | ||
4 | global timer and CPU local timers. The global timer is a 64-bit free running | ||
5 | up-counter and can generate 4 interrupts when the counter reaches one of the | ||
6 | four preset counter values. The CPU local timers are 32-bit free running | ||
7 | down-counters and generate an interrupt when the counter expires. There is | ||
8 | one CPU local timer instantiated in MCT for every CPU in the system. | ||
9 | |||
10 | Required properties: | ||
11 | |||
12 | - compatible: should be "samsung,exynos4210-mct". | ||
13 | (a) "samsung,exynos4210-mct", for mct compatible with Exynos4210 mct. | ||
14 | (b) "samsung,exynos4412-mct", for mct compatible with Exynos4412 mct. | ||
15 | |||
16 | - reg: base address of the mct controller and length of the address space | ||
17 | it occupies. | ||
18 | |||
19 | - interrupts: the list of interrupts generated by the controller. The following | ||
20 | should be the order of the interrupts specified. The local timer interrupts | ||
21 | should be specified after the four global timer interrupts have been | ||
22 | specified. | ||
23 | |||
24 | 0: Global Timer Interrupt 0 | ||
25 | 1: Global Timer Interrupt 1 | ||
26 | 2: Global Timer Interrupt 2 | ||
27 | 3: Global Timer Interrupt 3 | ||
28 | 4: Local Timer Interrupt 0 | ||
29 | 5: Local Timer Interrupt 1 | ||
30 | 6: .. | ||
31 | 7: .. | ||
32 | i: Local Timer Interrupt n | ||
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. | ||
38 | |||
39 | mct@10050000 { | ||
40 | compatible = "samsung,exynos4210-mct"; | ||
41 | reg = <0x10050000 0x800>; | ||
42 | interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, | ||
43 | <0 42 0>, <0 48 0>; | ||
44 | }; | ||
45 | |||
46 | Example 2: In this example, the MCT global and local timer interrupts are | ||
47 | connected to two seperate interrupt controllers. Hence, an | ||
48 | interrupt-map is created to map the interrupts to the respective | ||
49 | interrupt controllers. | ||
50 | |||
51 | mct@101C0000 { | ||
52 | compatible = "samsung,exynos4210-mct"; | ||
53 | reg = <0x101C0000 0x800>; | ||
54 | interrupt-controller; | ||
55 | #interrups-cells = <2>; | ||
56 | interrupt-parent = <&mct_map>; | ||
57 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | ||
58 | <4 0>, <5 0>; | ||
59 | |||
60 | mct_map: mct-map { | ||
61 | #interrupt-cells = <2>; | ||
62 | #address-cells = <0>; | ||
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>; | ||
67 | }; | ||
68 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/exynos-usb.txt b/Documentation/devicetree/bindings/usb/exynos-usb.txt new file mode 100644 index 000000000000..f66fcddba46f --- /dev/null +++ b/Documentation/devicetree/bindings/usb/exynos-usb.txt | |||
@@ -0,0 +1,40 @@ | |||
1 | Samsung Exynos SoC USB controller | ||
2 | |||
3 | The USB devices interface with USB controllers on Exynos SOCs. | ||
4 | The device node has following properties. | ||
5 | |||
6 | EHCI | ||
7 | Required properties: | ||
8 | - compatible: should be "samsung,exynos4210-ehci" for USB 2.0 | ||
9 | EHCI controller in host mode. | ||
10 | - reg: physical base address of the controller and length of memory mapped | ||
11 | region. | ||
12 | - interrupts: interrupt number to the cpu. | ||
13 | |||
14 | Optional properties: | ||
15 | - samsung,vbus-gpio: if present, specifies the GPIO that | ||
16 | needs to be pulled up for the bus to be powered. | ||
17 | |||
18 | Example: | ||
19 | |||
20 | usb@12110000 { | ||
21 | compatible = "samsung,exynos4210-ehci"; | ||
22 | reg = <0x12110000 0x100>; | ||
23 | interrupts = <0 71 0>; | ||
24 | samsung,vbus-gpio = <&gpx2 6 1 3 3>; | ||
25 | }; | ||
26 | |||
27 | OHCI | ||
28 | Required properties: | ||
29 | - compatible: should be "samsung,exynos4210-ohci" for USB 2.0 | ||
30 | OHCI companion controller in host mode. | ||
31 | - reg: physical base address of the controller and length of memory mapped | ||
32 | region. | ||
33 | - interrupts: interrupt number to the cpu. | ||
34 | |||
35 | Example: | ||
36 | usb@12120000 { | ||
37 | compatible = "samsung,exynos4210-ohci"; | ||
38 | reg = <0x12120000 0x100>; | ||
39 | interrupts = <0 71 0>; | ||
40 | }; | ||