kernel: bump 5.4 to 5.4.48
[oweals/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0599-dtoverlays-Add-Pi4-version-of-vc4-kms-v3d.patch
1 From 7f9f7a113e9c5d6efd997de7de93af31ec286174 Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <dave.stevenson@raspberrypi.org>
3 Date: Fri, 20 Sep 2019 17:20:01 +0100
4 Subject: [PATCH] dtoverlays: Add Pi4 version of vc4-kms-v3d
5
6 The Pi4 version of the KMS drivers is a work in progress, some
7 blocks need alternate configuration, and some blocks currently
8 need to remain disabled (eg the VEC).
9
10 Add a new overlay (vc4-kms-v3d-pi4) that loads the parts of
11 vc4-kms that do work on Pi4.
12 This has been tested with DPI and HDMI (not 100% reliable on mode
13 switching)
14
15 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
16 ---
17  arch/arm/boot/dts/overlays/Makefile           |   1 +
18  arch/arm/boot/dts/overlays/README             |  14 ++
19  .../dts/overlays/vc4-kms-v3d-pi4-overlay.dts  | 183 ++++++++++++++++++
20  3 files changed, 198 insertions(+)
21  create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
22
23 --- a/arch/arm/boot/dts/overlays/Makefile
24 +++ b/arch/arm/boot/dts/overlays/Makefile
25 @@ -191,6 +191,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
26         vc4-fkms-v3d.dtbo \
27         vc4-kms-kippah-7inch.dtbo \
28         vc4-kms-v3d.dtbo \
29 +       vc4-kms-v3d-pi4.dtbo \
30         vga666.dtbo \
31         w1-gpio.dtbo \
32         w1-gpio-pullup.dtbo \
33 --- a/arch/arm/boot/dts/overlays/README
34 +++ b/arch/arm/boot/dts/overlays/README
35 @@ -2684,6 +2684,20 @@ Params: cma-256                 CMA is 2
36          audio                   Enable or disable audio over HDMI (default "on")
37  
38  
39 +Name:   vc4-kms-v3d-pi4
40 +Info:   Enable Eric Anholt's DRM VC4 HDMI/HVS/V3D driver for Pi4.
41 +Load:   dtoverlay=vc4-kms-v3d-pi4,<param>
42 +Params: cma-256                 CMA is 256MB
43 +        cma-192                 CMA is 192MB
44 +        cma-128                 CMA is 128MB
45 +        cma-96                  CMA is 96MB
46 +        cma-64                  CMA is 64MB
47 +        audio                   Enable or disable audio over HDMI0 (default
48 +                                "on")
49 +        audio1                  Enable or disable audio over HDMI1 (default
50 +                                "on")
51 +
52 +
53  Name:   vga666
54  Info:   Overlay for the Fen Logic VGA666 board
55          This uses GPIOs 2-21 (so no I2C), and activates the output 2-3 seconds
56 --- /dev/null
57 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts
58 @@ -0,0 +1,183 @@
59 +/*
60 + * vc4-kms-v3d-pi4-overlay.dts
61 + */
62 +
63 +/dts-v1/;
64 +/plugin/;
65 +
66 +#include <dt-bindings/clock/bcm2835.h>
67 +
68 +/ {
69 +       compatible = "brcm,bcm2835";
70 +
71 +       fragment@0 {
72 +               target-path = "/chosen";
73 +               __overlay__ {
74 +                       bootargs = "cma=256M";
75 +               };
76 +       };
77 +
78 +       fragment@1 {
79 +               target-path = "/chosen";
80 +               __dormant__ {
81 +                       bootargs = "cma=192M";
82 +               };
83 +       };
84 +
85 +       fragment@2 {
86 +               target-path = "/chosen";
87 +               __dormant__ {
88 +                       bootargs = "cma=128M";
89 +               };
90 +       };
91 +
92 +       fragment@3 {
93 +               target-path = "/chosen";
94 +               __dormant__ {
95 +                       bootargs = "cma=96M";
96 +               };
97 +       };
98 +
99 +       fragment@4 {
100 +               target-path = "/chosen";
101 +               __dormant__ {
102 +                       bootargs = "cma=64M";
103 +               };
104 +       };
105 +
106 +       fragment@5 {
107 +               target = <&ddc0>;
108 +               __overlay__  {
109 +                       status = "okay";
110 +               };
111 +       };
112 +
113 +       fragment@6 {
114 +               target = <&ddc1>;
115 +               __overlay__  {
116 +                       status = "okay";
117 +               };
118 +       };
119 +
120 +       fragment@7 {
121 +               target = <&hdmi0>;
122 +               __overlay__  {
123 +                       status = "okay";
124 +               };
125 +       };
126 +
127 +       fragment@8 {
128 +               target = <&hdmi1>;
129 +               __overlay__  {
130 +                       status = "okay";
131 +               };
132 +       };
133 +
134 +       fragment@9 {
135 +               target = <&hvs>;
136 +               __overlay__  {
137 +                       status = "okay";
138 +               };
139 +       };
140 +
141 +       fragment@10 {
142 +               target = <&pixelvalve0>;
143 +               __overlay__  {
144 +                       status = "okay";
145 +               };
146 +       };
147 +
148 +       fragment@11 {
149 +               target = <&pixelvalve1>;
150 +               __overlay__  {
151 +                       status = "okay";
152 +               };
153 +       };
154 +
155 +       fragment@12 {
156 +               target = <&pixelvalve2>;
157 +               __overlay__  {
158 +                       status = "okay";
159 +               };
160 +       };
161 +
162 +       fragment@13 {
163 +               target = <&pixelvalve3>;
164 +               __overlay__  {
165 +                       status = "okay";
166 +               };
167 +       };
168 +
169 +       fragment@14 {
170 +               target = <&pixelvalve4>;
171 +               __overlay__  {
172 +                       status = "okay";
173 +               };
174 +       };
175 +
176 +       fragment@15 {
177 +               target = <&v3d>;
178 +               __overlay__  {
179 +                       status = "okay";
180 +               };
181 +       };
182 +
183 +       fragment@16 {
184 +               target = <&vc4>;
185 +               __overlay__  {
186 +                       status = "okay";
187 +               };
188 +       };
189 +
190 +       fragment@17 {
191 +               target = <&txp>;
192 +               __overlay__  {
193 +                       status = "okay";
194 +               };
195 +       };
196 +
197 +       fragment@18 {
198 +               target = <&fb>;
199 +               __overlay__  {
200 +                       status = "disabled";
201 +               };
202 +       };
203 +
204 +       fragment@19 {
205 +               target = <&firmwarekms>;
206 +               __overlay__  {
207 +                       status = "disabled";
208 +               };
209 +       };
210 +
211 +       fragment@20 {
212 +               target = <&vec>;
213 +               __overlay__  {
214 +                       status = "disabled";
215 +               };
216 +       };
217 +
218 +       fragment@21 {
219 +               target = <&hdmi0>;
220 +               __dormant__  {
221 +                       dmas;
222 +               };
223 +       };
224 +
225 +       fragment@22 {
226 +               target = <&hdmi1>;
227 +               __dormant__  {
228 +                       dmas;
229 +               };
230 +       };
231 +
232 +       __overrides__ {
233 +               cma-256 = <0>,"+0-1-2-3-4";
234 +               cma-192 = <0>,"-0+1-2-3-4";
235 +               cma-128 = <0>,"-0-1+2-3-4";
236 +               cma-96  = <0>,"-0-1-2+3-4";
237 +               cma-64  = <0>,"-0-1-2-3+4";
238 +               audio   = <0>,"!21";
239 +               audio1   = <0>,"!22";
240 +       };
241 +};