brcm2708: add kernel 4.14 support
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.14 / 950-0239-overlays-Add-upstream-overlay.patch
1 From 1612baf8148e9180f28d7afc93df3ec3cd3e5ce0 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Sat, 3 Mar 2018 14:18:03 +0000
4 Subject: [PATCH 239/454] overlays: Add 'upstream' overlay
5
6 The 'upstream' overlay makes the necessary changes for a downstream
7 .dtb to be used with an upstream kernel. It is currently made up from
8 three other overlays - vc4-kms-v3d, dwc2 and upstream-aux-interrupt.
9 The VPU firmware will soon be made to automatically load this overlay
10 when an upstream kernel is detected (using the trailer supplied by the
11 mkknlimg script).
12
13 See: https://github.com/raspberrypi/linux/pull/2393
14
15 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
16 ---
17 arch/arm/boot/dts/overlays/Makefile | 1 +
18 arch/arm/boot/dts/overlays/README | 10 +-
19 .../boot/dts/overlays/upstream-overlay.dts | 154 ++++++++++++++++++
20 3 files changed, 164 insertions(+), 1 deletion(-)
21 create mode 100644 arch/arm/boot/dts/overlays/upstream-overlay.dts
22
23 --- a/arch/arm/boot/dts/overlays/Makefile
24 +++ b/arch/arm/boot/dts/overlays/Makefile
25 @@ -123,6 +123,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
26 tinylcd35.dtbo \
27 uart0.dtbo \
28 uart1.dtbo \
29 + upstream.dtbo \
30 upstream-aux-interrupt.dtbo \
31 vc4-fkms-v3d.dtbo \
32 vc4-kms-v3d.dtbo \
33 --- a/arch/arm/boot/dts/overlays/README
34 +++ b/arch/arm/boot/dts/overlays/README
35 @@ -1731,9 +1731,17 @@ Params: txd1_pin GPIO pin
36 rxd1_pin GPIO pin for RXD1 (15, 33 or 41 - default 15)
37
38
39 +Name: upstream
40 +Info: Allow usage of downstream .dtb with upstream kernel. Comprises
41 + vc4-kms-v3d, dwc2 and upstream-aux-interrupt overlays.
42 +Load: dtoverlay=upstream
43 +Params: <None>
44 +
45 +
46 Name: upstream-aux-interrupt
47 Info: Allow usage of downstream .dtb with upstream kernel by binding AUX
48 - devices directly to the shared AUX interrupt line.
49 + devices directly to the shared AUX interrupt line. One of the parts
50 + of the 'upstream' overlay
51 Load: dtoverlay=upstream-aux-interrupt
52 Params: <None>
53
54 --- /dev/null
55 +++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
56 @@ -0,0 +1,154 @@
57 +// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-96 dwc2-overlay.dts,dr_mode=otg upstream-aux-interrupt-overlay.dts,
58 +
59 +/dts-v1/;
60 +/plugin/;
61 +
62 +#include <dt-bindings/clock/bcm2835.h>
63 +
64 +/ {
65 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
66 + fragment@0 {
67 + target-path = "/chosen";
68 + __dormant__ {
69 + bootargs = "cma=256M";
70 + };
71 + };
72 + fragment@1 {
73 + target-path = "/chosen";
74 + __dormant__ {
75 + bootargs = "cma=192M";
76 + };
77 + };
78 + fragment@2 {
79 + target-path = "/chosen";
80 + __dormant__ {
81 + bootargs = "cma=128M";
82 + };
83 + };
84 + fragment@3 {
85 + target-path = "/chosen";
86 + __overlay__ {
87 + bootargs = "cma=96M";
88 + };
89 + };
90 + fragment@4 {
91 + target-path = "/chosen";
92 + __dormant__ {
93 + bootargs = "cma=64M";
94 + };
95 + };
96 + fragment@5 {
97 + target = <&i2c2>;
98 + __overlay__ {
99 + status = "okay";
100 + };
101 + };
102 + fragment@6 {
103 + target = <&fb>;
104 + __overlay__ {
105 + status = "disabled";
106 + };
107 + };
108 + fragment@7 {
109 + target = <&pixelvalve0>;
110 + __overlay__ {
111 + interrupts = <2 13>;
112 + status = "okay";
113 + };
114 + };
115 + fragment@8 {
116 + target = <&pixelvalve1>;
117 + __overlay__ {
118 + interrupts = <2 14>;
119 + status = "okay";
120 + };
121 + };
122 + fragment@9 {
123 + target = <&pixelvalve2>;
124 + __overlay__ {
125 + interrupts = <2 10>;
126 + status = "okay";
127 + };
128 + };
129 + fragment@10 {
130 + target = <&hvs>;
131 + __overlay__ {
132 + interrupts = <2 1>;
133 + status = "okay";
134 + };
135 + };
136 + fragment@11 {
137 + target = <&hdmi>;
138 + __overlay__ {
139 + interrupts = <2 8>, <2 9>;
140 + status = "okay";
141 + };
142 + };
143 + fragment@12 {
144 + target = <&v3d>;
145 + __overlay__ {
146 + interrupts = <1 10>;
147 + status = "okay";
148 + };
149 + };
150 + fragment@13 {
151 + target = <&vc4>;
152 + __overlay__ {
153 + status = "okay";
154 + };
155 + };
156 + fragment@14 {
157 + target-path = "/soc/dma";
158 + __overlay__ {
159 + brcm,dma-channel-mask = <0x7f35>;
160 + };
161 + };
162 + fragment@15 {
163 + target = <&clocks>;
164 + __overlay__ {
165 + claim-clocks = <BCM2835_PLLD_DSI0 BCM2835_PLLD_DSI1 BCM2835_PLLH_AUX BCM2835_PLLH_PIX>;
166 + };
167 + };
168 + fragment@16 {
169 + target = <&vec>;
170 + __overlay__ {
171 + status = "okay";
172 + };
173 + };
174 + fragment@17 {
175 + target = <&usb>;
176 + #address-cells = <1>;
177 + #size-cells = <1>;
178 + dwc2_usb: __overlay__ {
179 + compatible = "brcm,bcm2835-usb";
180 + reg = <0x7e980000 0x10000>;
181 + interrupts = <1 9>;
182 + dr_mode = "otg";
183 + g-np-tx-fifo-size = <32>;
184 + g-rx-fifo-size = <256>;
185 + g-tx-fifo-size = <512 512 512 512 512 768>;
186 + status = "okay";
187 + };
188 + };
189 + fragment@18 {
190 + target = <&uart1>;
191 + __overlay__ {
192 + interrupt-parent = <&intc>;
193 + interrupts = <0x1 0x1d>;
194 + };
195 + };
196 + fragment@19 {
197 + target = <&spi1>;
198 + __overlay__ {
199 + interrupt-parent = <&intc>;
200 + interrupts = <0x1 0x1d>;
201 + };
202 + };
203 + fragment@20 {
204 + target = <&spi2>;
205 + __overlay__ {
206 + interrupt-parent = <&intc>;
207 + interrupts = <0x1 0x1d>;
208 + };
209 + };
210 +};