Skip to content

Commit 1021781

Browse files
committed
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver updates from Olof Johansson: "Some releases this branch is nearly empty, others we have more stuff. It tends to gather drivers that need SoC modification or dependencies such that they have to (also) go in through our tree. For this release, we have merged in part of the reset controller tree (with handshake that the parts we have merged in will remain stable), as well as dependencies on a few clock branches. In general, new items here are: - Qualcomm driver for SMM/SMD, which is how they communicate with the coprocessors on (some) of their platforms - memory controller work for ARM's PL172 memory controller - reset drivers for various platforms - PMU power domain support for Marvell platforms - Tegra support for T132/T210 SoCs: PMC, fuse, memory controller per-SoC support" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits) ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze() ARM: tegra: Disable cpuidle if PSCI is available soc/tegra: pmc: Use existing pclk reference soc/tegra: pmc: Remove unnecessary return statement soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile memory: tegra: Add Tegra210 support memory: tegra: Add support for a variable-size client ID bitfield clk: shmobile: rz: Add CPG/MSTP Clock Domain support clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support clk: shmobile: Add CPG/MSTP Clock Domain support ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets reset: reset-zynq: Adding support for Xilinx Zynq reset controller. docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings. MIPS: ath79: Add the reset controller to the AR9132 dtsi reset: Add a driver for the reset controller on the AR71XX/AR9XXX devicetree: Add bindings for the ATH79 reset controller reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property doc: dt: add documentation for lpc1850-rgu reset driver ...
2 parents 50686e8 + 21815b9 commit 1021781

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+6781
-498
lines changed
Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
* Renesas R8A7778 Clock Pulse Generator (CPG)
22

33
The CPG generates core clocks for the R8A7778. It includes two PLLs and
4-
several fixed ratio dividers
4+
several fixed ratio dividers.
5+
The CPG also provides a Clock Domain for SoC devices, in combination with the
6+
CPG Module Stop (MSTP) Clocks.
57

68
Required Properties:
79

@@ -10,10 +12,18 @@ Required Properties:
1012
- #clock-cells: Must be 1
1113
- clock-output-names: The names of the clocks. Supported clocks are
1214
"plla", "pllb", "b", "out", "p", "s", and "s1".
15+
- #power-domain-cells: Must be 0
1316

17+
SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed
18+
through an MSTP clock should refer to the CPG device node in their
19+
"power-domains" property, as documented by the generic PM domain bindings in
20+
Documentation/devicetree/bindings/power/power_domain.txt.
1421

15-
Example
16-
-------
22+
23+
Examples
24+
--------
25+
26+
- CPG device node:
1727

1828
cpg_clocks: cpg_clocks@ffc80000 {
1929
compatible = "renesas,r8a7778-cpg-clocks";
@@ -22,4 +32,17 @@ Example
2232
clocks = <&extal_clk>;
2333
clock-output-names = "plla", "pllb", "b",
2434
"out", "p", "s", "s1";
35+
#power-domain-cells = <0>;
36+
};
37+
38+
39+
- CPG/MSTP Clock Domain member device node:
40+
41+
sdhi0: sd@ffe4c000 {
42+
compatible = "renesas,sdhi-r8a7778";
43+
reg = <0xffe4c000 0x100>;
44+
interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
45+
clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;
46+
power-domains = <&cpg_clocks>;
47+
status = "disabled";
2548
};
Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
* Renesas R8A7779 Clock Pulse Generator (CPG)
22

33
The CPG generates core clocks for the R8A7779. It includes one PLL and
4-
several fixed ratio dividers
4+
several fixed ratio dividers.
5+
The CPG also provides a Clock Domain for SoC devices, in combination with the
6+
CPG Module Stop (MSTP) Clocks.
57

68
Required Properties:
79

@@ -12,16 +14,36 @@ Required Properties:
1214
- #clock-cells: Must be 1
1315
- clock-output-names: The names of the clocks. Supported clocks are "plla",
1416
"z", "zs", "s", "s1", "p", "b", "out".
17+
- #power-domain-cells: Must be 0
1518

19+
SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed
20+
through an MSTP clock should refer to the CPG device node in their
21+
"power-domains" property, as documented by the generic PM domain bindings in
22+
Documentation/devicetree/bindings/power/power_domain.txt.
1623

17-
Example
18-
-------
24+
25+
Examples
26+
--------
27+
28+
- CPG device node:
1929

2030
cpg_clocks: cpg_clocks@ffc80000 {
2131
compatible = "renesas,r8a7779-cpg-clocks";
22-
reg = <0 0xffc80000 0 0x30>;
32+
reg = <0xffc80000 0x30>;
2333
clocks = <&extal_clk>;
2434
#clock-cells = <1>;
2535
clock-output-names = "plla", "z", "zs", "s", "s1", "p",
2636
"b", "out";
37+
#power-domain-cells = <0>;
38+
};
39+
40+
41+
- CPG/MSTP Clock Domain member device node:
42+
43+
sata: sata@fc600000 {
44+
compatible = "renesas,sata-r8a7779", "renesas,rcar-sata";
45+
reg = <0xfc600000 0x2000>;
46+
interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
47+
clocks = <&mstp1_clks R8A7779_CLK_SATA>;
48+
power-domains = <&cpg_clocks>;
2749
};

Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
The CPG generates core clocks for the R-Car Gen2 SoCs. It includes three PLLs
44
and several fixed ratio dividers.
5+
The CPG also provides a Clock Domain for SoC devices, in combination with the
6+
CPG Module Stop (MSTP) Clocks.
57

68
Required Properties:
79

@@ -20,10 +22,18 @@ Required Properties:
2022
- clock-output-names: The names of the clocks. Supported clocks are "main",
2123
"pll0", "pll1", "pll3", "lb", "qspi", "sdh", "sd0", "sd1", "z", "rcan", and
2224
"adsp"
25+
- #power-domain-cells: Must be 0
2326

27+
SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed
28+
through an MSTP clock should refer to the CPG device node in their
29+
"power-domains" property, as documented by the generic PM domain bindings in
30+
Documentation/devicetree/bindings/power/power_domain.txt.
2431

25-
Example
26-
-------
32+
33+
Examples
34+
--------
35+
36+
- CPG device node:
2737

2838
cpg_clocks: cpg_clocks@e6150000 {
2939
compatible = "renesas,r8a7790-cpg-clocks",
@@ -34,4 +44,16 @@ Example
3444
clock-output-names = "main", "pll0, "pll1", "pll3",
3545
"lb", "qspi", "sdh", "sd0", "sd1", "z",
3646
"rcan", "adsp";
47+
#power-domain-cells = <0>;
48+
};
49+
50+
51+
- CPG/MSTP Clock Domain member device node:
52+
53+
thermal@e61f0000 {
54+
compatible = "renesas,thermal-r8a7790", "renesas,rcar-thermal";
55+
reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
56+
interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
57+
clocks = <&mstp5_clks R8A7790_CLK_THERMAL>;
58+
power-domains = <&cpg_clocks>;
3759
};

Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
The CPG generates core clocks for the RZ SoCs. It includes the PLL, variable
44
CPU and GPU clocks, and several fixed ratio dividers.
5+
The CPG also provides a Clock Domain for SoC devices, in combination with the
6+
CPG Module Stop (MSTP) Clocks.
57

68
Required Properties:
79

@@ -14,10 +16,18 @@ Required Properties:
1416
- #clock-cells: Must be 1
1517
- clock-output-names: The names of the clocks. Supported clocks are "pll",
1618
"i", and "g"
19+
- #power-domain-cells: Must be 0
1720

21+
SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed
22+
through an MSTP clock should refer to the CPG device node in their
23+
"power-domains" property, as documented by the generic PM domain bindings in
24+
Documentation/devicetree/bindings/power/power_domain.txt.
1825

19-
Example
20-
-------
26+
27+
Examples
28+
--------
29+
30+
- CPG device node:
2131

2232
cpg_clocks: cpg_clocks@fcfe0000 {
2333
#clock-cells = <1>;
@@ -26,4 +36,19 @@ Example
2636
reg = <0xfcfe0000 0x18>;
2737
clocks = <&extal_clk>, <&usb_x1_clk>;
2838
clock-output-names = "pll", "i", "g";
39+
#power-domain-cells = <0>;
40+
};
41+
42+
43+
- CPG/MSTP Clock Domain member device node:
44+
45+
mtu2: timer@fcff0000 {
46+
compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
47+
reg = <0xfcff0000 0x400>;
48+
interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
49+
interrupt-names = "tgi0a";
50+
clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
51+
clock-names = "fck";
52+
power-domains = <&cpg_clocks>;
53+
status = "disabled";
2954
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Tegra124 CPU frequency scaling driver bindings
2+
----------------------------------------------
3+
4+
Both required and optional properties listed below must be defined
5+
under node /cpus/cpu@0.
6+
7+
Required properties:
8+
- clocks: Must contain an entry for each entry in clock-names.
9+
See ../clocks/clock-bindings.txt for details.
10+
- clock-names: Must include the following entries:
11+
- cpu_g: Clock mux for the fast CPU cluster.
12+
- cpu_lp: Clock mux for the low-power CPU cluster.
13+
- pll_x: Fast PLL clocksource.
14+
- pll_p: Auxiliary PLL used during fast PLL rate changes.
15+
- dfll: Fast DFLL clocksource that also automatically scales CPU voltage.
16+
- vdd-cpu-supply: Regulator for CPU voltage
17+
18+
Optional properties:
19+
- clock-latency: Specify the possible maximum transition latency for clock,
20+
in unit of nanoseconds.
21+
22+
Example:
23+
--------
24+
cpus {
25+
#address-cells = <1>;
26+
#size-cells = <0>;
27+
28+
cpu@0 {
29+
device_type = "cpu";
30+
compatible = "arm,cortex-a15";
31+
reg = <0>;
32+
33+
clocks = <&tegra_car TEGRA124_CLK_CCLK_G>,
34+
<&tegra_car TEGRA124_CLK_CCLK_LP>,
35+
<&tegra_car TEGRA124_CLK_PLL_X>,
36+
<&tegra_car TEGRA124_CLK_PLL_P>,
37+
<&dfll>;
38+
clock-names = "cpu_g", "cpu_lp", "pll_x", "pll_p", "dfll";
39+
clock-latency = <300000>;
40+
vdd-cpu-supply: <&vdd_cpu>;
41+
};
42+
43+
<...>
44+
};
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
* Device tree bindings for ARM PL172 MultiPort Memory Controller
2+
3+
Required properties:
4+
5+
- compatible: "arm,pl172", "arm,primecell"
6+
7+
- reg: Must contains offset/length value for controller.
8+
9+
- #address-cells: Must be 2. The partition number has to be encoded in the
10+
first address cell and it may accept values 0..N-1
11+
(N - total number of partitions). The second cell is the
12+
offset into the partition.
13+
14+
- #size-cells: Must be set to 1.
15+
16+
- ranges: Must contain one or more chip select memory regions.
17+
18+
- clocks: Must contain references to controller clocks.
19+
20+
- clock-names: Must contain "mpmcclk" and "apb_pclk".
21+
22+
- clock-ranges: Empty property indicating that child nodes can inherit
23+
named clocks. Required only if clock tree data present
24+
in device tree.
25+
See clock-bindings.txt
26+
27+
Child chip-select (cs) nodes contain the memory devices nodes connected to
28+
such as NOR (e.g. cfi-flash) and NAND.
29+
30+
Required child cs node properties:
31+
32+
- #address-cells: Must be 2.
33+
34+
- #size-cells: Must be 1.
35+
36+
- ranges: Empty property indicating that child nodes can inherit
37+
memory layout.
38+
39+
- clock-ranges: Empty property indicating that child nodes can inherit
40+
named clocks. Required only if clock tree data present
41+
in device tree.
42+
43+
- mpmc,cs: Chip select number. Indicates to the pl0172 driver
44+
which chipselect is used for accessing the memory.
45+
46+
- mpmc,memory-width: Width of the chip select memory. Must be equal to
47+
either 8, 16 or 32.
48+
49+
Optional child cs node config properties:
50+
51+
- mpmc,async-page-mode: Enable asynchronous page mode.
52+
53+
- mpmc,cs-active-high: Set chip select polarity to active high.
54+
55+
- mpmc,byte-lane-low: Set byte lane state to low.
56+
57+
- mpmc,extended-wait: Enable extended wait.
58+
59+
- mpmc,buffer-enable: Enable write buffer.
60+
61+
- mpmc,write-protect: Enable write protect.
62+
63+
Optional child cs node timing properties:
64+
65+
- mpmc,write-enable-delay: Delay from chip select assertion to write
66+
enable (WE signal) in nano seconds.
67+
68+
- mpmc,output-enable-delay: Delay from chip select assertion to output
69+
enable (OE signal) in nano seconds.
70+
71+
- mpmc,write-access-delay: Delay from chip select assertion to write
72+
access in nano seconds.
73+
74+
- mpmc,read-access-delay: Delay from chip select assertion to read
75+
access in nano seconds.
76+
77+
- mpmc,page-mode-read-delay: Delay for asynchronous page mode sequential
78+
accesses in nano seconds.
79+
80+
- mpmc,turn-round-delay: Delay between access to memory banks in nano
81+
seconds.
82+
83+
If any of the above timing parameters are absent, current parameter value will
84+
be taken from the corresponding HW reg.
85+
86+
Example for pl172 with nor flash on chip select 0 shown below.
87+
88+
emc: memory-controller@40005000 {
89+
compatible = "arm,pl172", "arm,primecell";
90+
reg = <0x40005000 0x1000>;
91+
clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
92+
clock-names = "mpmcclk", "apb_pclk";
93+
#address-cells = <2>;
94+
#size-cells = <1>;
95+
ranges = <0 0 0x1c000000 0x1000000
96+
1 0 0x1d000000 0x1000000
97+
2 0 0x1e000000 0x1000000
98+
3 0 0x1f000000 0x1000000>;
99+
100+
cs0 {
101+
#address-cells = <2>;
102+
#size-cells = <1>;
103+
ranges;
104+
105+
mpmc,cs = <0>;
106+
mpmc,memory-width = <16>;
107+
mpmc,byte-lane-low;
108+
mpmc,write-enable-delay = <0>;
109+
mpmc,output-enable-delay = <0>;
110+
mpmc,read-enable-delay = <70>;
111+
mpmc,page-mode-read-delay = <70>;
112+
113+
flash@0,0 {
114+
compatible = "sst,sst39vf320", "cfi-flash";
115+
reg = <0 0 0x400000>;
116+
bank-width = <2>;
117+
#address-cells = <1>;
118+
#size-cells = <1>;
119+
partition@0 {
120+
label = "data";
121+
reg = <0 0x400000>;
122+
};
123+
};
124+
};
125+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Binding for Qualcomm Atheros AR7xxx/AR9XXX reset controller
2+
3+
Please also refer to reset.txt in this directory for common reset
4+
controller binding usage.
5+
6+
Required Properties:
7+
- compatible: has to be "qca,<soctype>-reset", "qca,ar7100-reset"
8+
as fallback
9+
- reg: Base address and size of the controllers memory area
10+
- #reset-cells : Specifies the number of cells needed to encode reset
11+
line, should be 1
12+
13+
Example:
14+
15+
reset-controller@1806001c {
16+
compatible = "qca,ar9132-reset", "qca,ar7100-reset";
17+
reg = <0x1806001c 0x4>;
18+
19+
#reset-cells = <1>;
20+
};

0 commit comments

Comments
 (0)