aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2017-02-07 10:09:41 -0500
committerArnd Bergmann <arnd@arndb.de>2017-02-07 10:09:41 -0500
commit3c38e32aad9b4fe11d037118008d2245bc273454 (patch)
tree8185e14b942cf014fd9e75307ae7817ca69cbf95
parent2bad7f862ef8dba5e10191f68d874231d6620ede (diff)
parentda2ee97311486063e86e7989b713ec6aca66ca3e (diff)
Merge tag 'sunxi-dt-for-4.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt
Pull "Allwinner DT changes for 4.11, part 2" from Maxime Ripard: Support for the audio codec and Mali GPU for the A33 * tag 'sunxi-dt-for-4.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: dts: sun8i: sinlinx: Enable audio nodes ARM: dts: sun8i: parrot: Enable audio nodes ARM: dts: sun8i: Add audio codec, dai and card for A33 ARM: sun8i: dt: Add mali node dt-bindings: gpu: Add Mali Utgard bindings
-rw-r--r--Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt81
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi26
-rw-r--r--arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts12
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi45
-rw-r--r--arch/arm/boot/dts/sun8i-r16-parrot.dts12
5 files changed, 176 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
new file mode 100644
index 000000000000..476f5ea6c627
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
@@ -0,0 +1,81 @@
1ARM Mali Utgard GPU
2===================
3
4Required properties:
5 - compatible
6 * Must be one of the following:
7 + "arm,mali-300"
8 + "arm,mali-400"
9 + "arm,mali-450"
10 * And, optionally, one of the vendor specific compatible:
11 + allwinner,sun4i-a10-mali
12 + allwinner,sun7i-a20-mali
13 + amlogic,meson-gxbb-mali
14 + amlogic,meson-gxl-mali
15 + stericsson,db8500-mali
16
17 - reg: Physical base address and length of the GPU registers
18
19 - interrupts: an entry for each entry in interrupt-names.
20 See ../interrupt-controller/interrupts.txt for details.
21
22 - interrupt-names:
23 * ppX: Pixel Processor X interrupt (X from 0 to 7)
24 * ppmmuX: Pixel Processor X MMU interrupt (X from 0 to 7)
25 * pp: Pixel Processor broadcast interrupt (mali-450 only)
26 * gp: Geometry Processor interrupt
27 * gpmmu: Geometry Processor MMU interrupt
28
29 - clocks: an entry for each entry in clock-names
30 - clock-names:
31 * bus: bus clock for the GPU
32 * core: clock driving the GPU itself
33
34Optional properties:
35 - interrupt-names and interrupts:
36 * pmu: Power Management Unit interrupt, if implemented in hardware
37
38Vendor-specific bindings
39------------------------
40
41The Mali GPU is integrated very differently from one SoC to
42another. In order to accomodate those differences, you have the option
43to specify one more vendor-specific compatible, among:
44
45 - allwinner,sun4i-a10-mali
46 Required properties:
47 * resets: phandle to the reset line for the GPU
48
49 - allwinner,sun7i-a20-mali
50 Required properties:
51 * resets: phandle to the reset line for the GPU
52
53 - stericsson,db8500-mali
54 Required properties:
55 * interrupt-names and interrupts:
56 + combined: combined interrupt of all of the above lines
57
58Example:
59
60mali: gpu@1c40000 {
61 compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
62 reg = <0x01c40000 0x10000>;
63 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
64 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
65 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
66 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
67 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
68 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
70 interrupt-names = "gp",
71 "gpmmu",
72 "pp0",
73 "ppmmu0",
74 "pp1",
75 "ppmmu1",
76 "pmu";
77 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
78 clock-names = "bus", "core";
79 resets = <&ccu RST_BUS_GPU>;
80};
81
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 9f9bc2c5ac97..a952cc0703cc 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -472,6 +472,32 @@
472 #size-cells = <0>; 472 #size-cells = <0>;
473 }; 473 };
474 474
475 mali: gpu@1c40000 {
476 compatible = "allwinner,sun8i-a23-mali",
477 "allwinner,sun7i-a20-mali", "arm,mali-400";
478 reg = <0x01c40000 0x10000>;
479 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
482 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
483 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
484 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
485 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
486 interrupt-names = "gp",
487 "gpmmu",
488 "pp0",
489 "ppmmu0",
490 "pp1",
491 "ppmmu1",
492 "pmu";
493 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
494 clock-names = "bus", "core";
495 resets = <&ccu RST_BUS_GPU>;
496
497 assigned-clocks = <&ccu CLK_GPU>;
498 assigned-clock-rates = <408000000>;
499 };
500
475 gic: interrupt-controller@01c81000 { 501 gic: interrupt-controller@01c81000 {
476 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 502 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
477 reg = <0x01c81000 0x1000>, 503 reg = <0x01c81000 0x1000>,
diff --git a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
index c206ed693aa2..03b89bdd55ba 100644
--- a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
+++ b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
@@ -80,10 +80,18 @@
80 }; 80 };
81}; 81};
82 82
83&codec {
84 status = "okay";
85};
86
83&de { 87&de {
84 status = "okay"; 88 status = "okay";
85}; 89};
86 90
91&dai {
92 status = "okay";
93};
94
87&ehci0 { 95&ehci0 {
88 status = "okay"; 96 status = "okay";
89}; 97};
@@ -227,6 +235,10 @@
227 regulator-name = "vcc-rtc"; 235 regulator-name = "vcc-rtc";
228}; 236};
229 237
238&sound {
239 status = "okay";
240};
241
230&tcon0 { 242&tcon0 {
231 pinctrl-names = "default"; 243 pinctrl-names = "default";
232 pinctrl-0 = <&lcd_rgb666_pins>; 244 pinctrl-0 = <&lcd_rgb666_pins>;
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 5a9ba43ccb07..18c174fef84f 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -104,6 +104,28 @@
104 reg = <0x40000000 0x80000000>; 104 reg = <0x40000000 0x80000000>;
105 }; 105 };
106 106
107 sound: sound {
108 compatible = "simple-audio-card";
109 simple-audio-card,name = "sun8i-a33-audio";
110 simple-audio-card,format = "i2s";
111 simple-audio-card,frame-master = <&link_codec>;
112 simple-audio-card,bitclock-master = <&link_codec>;
113 simple-audio-card,mclk-fs = <512>;
114 simple-audio-card,aux-devs = <&codec_analog>;
115 simple-audio-card,routing =
116 "Left DAC", "Digital Left DAC",
117 "Right DAC", "Digital Right DAC";
118 status = "disabled";
119
120 simple-audio-card,cpu {
121 sound-dai = <&dai>;
122 };
123
124 link_codec: simple-audio-card,codec {
125 sound-dai = <&codec>;
126 };
127 };
128
107 soc@01c00000 { 129 soc@01c00000 {
108 tcon0: lcd-controller@01c0c000 { 130 tcon0: lcd-controller@01c0c000 {
109 compatible = "allwinner,sun8i-a33-tcon"; 131 compatible = "allwinner,sun8i-a33-tcon";
@@ -151,6 +173,29 @@
151 reset-names = "ahb"; 173 reset-names = "ahb";
152 }; 174 };
153 175
176 dai: dai@01c22c00 {
177 #sound-dai-cells = <0>;
178 compatible = "allwinner,sun6i-a31-i2s";
179 reg = <0x01c22c00 0x200>;
180 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
181 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
182 clock-names = "apb", "mod";
183 resets = <&ccu RST_BUS_CODEC>;
184 dmas = <&dma 15>, <&dma 15>;
185 dma-names = "rx", "tx";
186 status = "disabled";
187 };
188
189 codec: codec@01c22e00 {
190 #sound-dai-cells = <0>;
191 compatible = "allwinner,sun8i-a33-codec";
192 reg = <0x01c22e00 0x400>;
193 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
195 clock-names = "bus", "mod";
196 status = "disabled";
197 };
198
154 fe0: display-frontend@01e00000 { 199 fe0: display-frontend@01e00000 {
155 compatible = "allwinner,sun8i-a33-display-frontend"; 200 compatible = "allwinner,sun8i-a33-display-frontend";
156 reg = <0x01e00000 0x20000>; 201 reg = <0x01e00000 0x20000>;
diff --git a/arch/arm/boot/dts/sun8i-r16-parrot.dts b/arch/arm/boot/dts/sun8i-r16-parrot.dts
index e4da572427b1..472c03b7aeab 100644
--- a/arch/arm/boot/dts/sun8i-r16-parrot.dts
+++ b/arch/arm/boot/dts/sun8i-r16-parrot.dts
@@ -84,6 +84,14 @@
84 84
85}; 85};
86 86
87&codec {
88 status = "okay";
89};
90
91&dai {
92 status = "okay";
93};
94
87&ehci0 { 95&ehci0 {
88 status = "okay"; 96 status = "okay";
89}; 97};
@@ -317,6 +325,10 @@
317 status = "okay"; 325 status = "okay";
318}; 326};
319 327
328&sound {
329 status = "okay";
330};
331
320&uart0 { 332&uart0 {
321 pinctrl-names = "default"; 333 pinctrl-names = "default";
322 pinctrl-0 = <&uart0_pins_b>; 334 pinctrl-0 = <&uart0_pins_b>;