diff options
author | Arnd Bergmann <arnd@arndb.de> | 2017-02-07 10:09:41 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2017-02-07 10:09:41 -0500 |
commit | 3c38e32aad9b4fe11d037118008d2245bc273454 (patch) | |
tree | 8185e14b942cf014fd9e75307ae7817ca69cbf95 | |
parent | 2bad7f862ef8dba5e10191f68d874231d6620ede (diff) | |
parent | da2ee97311486063e86e7989b713ec6aca66ca3e (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.txt | 81 | ||||
-rw-r--r-- | arch/arm/boot/dts/sun8i-a23-a33.dtsi | 26 | ||||
-rw-r--r-- | arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 12 | ||||
-rw-r--r-- | arch/arm/boot/dts/sun8i-a33.dtsi | 45 | ||||
-rw-r--r-- | arch/arm/boot/dts/sun8i-r16-parrot.dts | 12 |
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 @@ | |||
1 | ARM Mali Utgard GPU | ||
2 | =================== | ||
3 | |||
4 | Required 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 | |||
34 | Optional properties: | ||
35 | - interrupt-names and interrupts: | ||
36 | * pmu: Power Management Unit interrupt, if implemented in hardware | ||
37 | |||
38 | Vendor-specific bindings | ||
39 | ------------------------ | ||
40 | |||
41 | The Mali GPU is integrated very differently from one SoC to | ||
42 | another. In order to accomodate those differences, you have the option | ||
43 | to 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 | |||
58 | Example: | ||
59 | |||
60 | mali: 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>; |