Skip to content

Commit b03bb79

Browse files
committed
Merge tag 'tegra-for-3.14-dmas-resets-rework' into drm/for-next
ARM: tegra: implement common DMA and resets DT bindings This series converts the Tegra DTs and drivers to use the common/ standard DMA and reset bindings, rather than custom bindings. It also adds complete documentation for the Tegra clock bindings without actually changing any binding definitions. This conversion relies on a few sets of patches in branches from outside the Tegra tree: 1) A patch to add an DMA channel request API which allows deferred probe to be implemented. 2) A patch to implement a common part of the of_xlate function for DMA controllers. 3) Some ASoC patches (which in turn rely on (1) above), which support deferred probe during DMA channel allocation. 4) The Tegra clock driver changes for 3.14. Consequently, this branch is based on a merge of all of those external branches. In turn, this branch is or will be pulled into a few places that either rely on features introduced here, or would otherwise conflict with the patches: a) Tegra's own for-3.14/powergate and for-4.14/dt branches, to avoid conflicts. b) The DRM tree, which introduces new code that relies on the reset controller framework introduced in this branch, and to avoid conflicts.
2 parents 319e2e3 + 8a0a1af commit b03bb79

File tree

91 files changed

+6603
-3569
lines changed

Some content is hidden

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

91 files changed

+6603
-3569
lines changed

Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Required properties:
99
- compatible : Should contain "nvidia,tegra<chip>-pmc".
1010
- reg : Offset and length of the register set for the device
1111
- clocks : Must contain an entry for each entry in clock-names.
12+
See ../clocks/clock-bindings.txt for details.
1213
- clock-names : Must include the following entries:
1314
"pclk" (The Tegra clock of that name),
1415
"clk32k_in" (The 32KHz clock input to Tegra).

Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Required properties :
1515
In clock consumers, this cell represents the clock ID exposed by the
1616
CAR. The assignments may be found in header file
1717
<dt-bindings/clock/tegra114-car.h>.
18+
- #reset-cells : Should be 1.
19+
In clock consumers, this cell represents the bit number in the CAR's
20+
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
1821

1922
Example SoC include file:
2023

@@ -23,6 +26,7 @@ Example SoC include file:
2326
compatible = "nvidia,tegra114-car";
2427
reg = <0x60006000 0x1000>;
2528
#clock-cells = <1>;
29+
#reset-cells = <1>;
2630
};
2731

2832
usb@c5004000 {
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
NVIDIA Tegra124 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,tegra124-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
16+
CAR. The assignments may be found in header file
17+
<dt-bindings/clock/tegra124-car.h>.
18+
- #reset-cells : Should be 1.
19+
In clock consumers, this cell represents the bit number in the CAR's
20+
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
21+
22+
Example SoC include file:
23+
24+
/ {
25+
tegra_car: clock {
26+
compatible = "nvidia,tegra124-car";
27+
reg = <0x60006000 0x1000>;
28+
#clock-cells = <1>;
29+
#reset-cells = <1>;
30+
};
31+
32+
usb@c5004000 {
33+
clocks = <&tegra_car TEGRA124_CLK_USB2>;
34+
};
35+
};
36+
37+
Example board file:
38+
39+
/ {
40+
clocks {
41+
compatible = "simple-bus";
42+
#address-cells = <1>;
43+
#size-cells = <0>;
44+
45+
osc: clock@0 {
46+
compatible = "fixed-clock";
47+
reg = <0>;
48+
#clock-cells = <0>;
49+
clock-frequency = <112400000>;
50+
};
51+
52+
clk_32k: clock@1 {
53+
compatible = "fixed-clock";
54+
reg = <1>;
55+
#clock-cells = <0>;
56+
clock-frequency = <32768>;
57+
};
58+
};
59+
60+
&tegra_car {
61+
clocks = <&clk_32k> <&osc>;
62+
};
63+
};

Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Required properties :
1515
In clock consumers, this cell represents the clock ID exposed by the
1616
CAR. The assignments may be found in header file
1717
<dt-bindings/clock/tegra20-car.h>.
18+
- #reset-cells : Should be 1.
19+
In clock consumers, this cell represents the bit number in the CAR's
20+
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
1821

1922
Example SoC include file:
2023

@@ -23,6 +26,7 @@ Example SoC include file:
2326
compatible = "nvidia,tegra20-car";
2427
reg = <0x60006000 0x1000>;
2528
#clock-cells = <1>;
29+
#reset-cells = <1>;
2630
};
2731

2832
usb@c5004000 {

Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Required properties :
1515
In clock consumers, this cell represents the clock ID exposed by the
1616
CAR. The assignments may be found in header file
1717
<dt-bindings/clock/tegra30-car.h>.
18+
- #reset-cells : Should be 1.
19+
In clock consumers, this cell represents the bit number in the CAR's
20+
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
1821

1922
Example SoC include file:
2023

@@ -23,6 +26,7 @@ Example SoC include file:
2326
compatible = "nvidia,tegra30-car";
2427
reg = <0x60006000 0x1000>;
2528
#clock-cells = <1>;
29+
#reset-cells = <1>;
2630
};
2731

2832
usb@c5004000 {

Documentation/devicetree/bindings/dma/tegra20-apbdma.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ Required properties:
55
- reg: Should contain DMA registers location and length. This shuld include
66
all of the per-channel registers.
77
- interrupts: Should contain all of the per-channel DMA interrupts.
8+
- clocks: Must contain one entry, for the module clock.
9+
See ../clocks/clock-bindings.txt for details.
10+
- resets : Must contain an entry for each entry in reset-names.
11+
See ../reset/reset.txt for details.
12+
- reset-names : Must include the following entries:
13+
- dma
14+
- #dma-cells : Must be <1>. This dictates the length of DMA specifiers in
15+
client nodes' dmas properties. The specifier represents the DMA request
16+
select value for the peripheral. For more details, consult the Tegra TRM's
17+
documentation of the APB DMA channel control register REQ_SEL field.
818

919
Examples:
1020

@@ -27,4 +37,8 @@ apbdma: dma@6000a000 {
2737
0 149 0x04
2838
0 150 0x04
2939
0 151 0x04 >;
40+
clocks = <&tegra_car 34>;
41+
resets = <&tegra_car 34>;
42+
reset-names = "dma";
43+
#dma-cells = <1>;
3044
};

0 commit comments

Comments
 (0)