bcm27xx: add kernel 5.10 support
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.10 / 950-0732-overlays-Add-midi-uart-2345-overlay.dts.patch
1 From 37f172b47784a4debc62cb71974eac303031e69c Mon Sep 17 00:00:00 2001
2 From: pjx3 <pjx3@users.noreply.github.com>
3 Date: Sun, 8 Aug 2021 20:09:46 +0100
4 Subject: [PATCH] overlays: Add midi-uart{2345}-overlay.dts
5
6 Added overlays for enabling MIDI baudrates on additional UARTs
7
8 Signed-off-by: Pete Marshall <petemarshall303@gmail.com>
9 ---
10 arch/arm/boot/dts/overlays/Makefile | 4 ++
11 arch/arm/boot/dts/overlays/README | 28 ++++++++++++++
12 .../boot/dts/overlays/midi-uart2-overlay.dts | 37 ++++++++++++++++++
13 .../boot/dts/overlays/midi-uart3-overlay.dts | 38 +++++++++++++++++++
14 .../boot/dts/overlays/midi-uart4-overlay.dts | 38 +++++++++++++++++++
15 .../boot/dts/overlays/midi-uart5-overlay.dts | 38 +++++++++++++++++++
16 6 files changed, 183 insertions(+)
17 create mode 100644 arch/arm/boot/dts/overlays/midi-uart2-overlay.dts
18 create mode 100644 arch/arm/boot/dts/overlays/midi-uart3-overlay.dts
19 create mode 100644 arch/arm/boot/dts/overlays/midi-uart4-overlay.dts
20 create mode 100644 arch/arm/boot/dts/overlays/midi-uart5-overlay.dts
21
22 --- a/arch/arm/boot/dts/overlays/Makefile
23 +++ b/arch/arm/boot/dts/overlays/Makefile
24 @@ -123,6 +123,10 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
25 merus-amp.dtbo \
26 midi-uart0.dtbo \
27 midi-uart1.dtbo \
28 + midi-uart2.dtbo \
29 + midi-uart3.dtbo \
30 + midi-uart4.dtbo \
31 + midi-uart5.dtbo \
32 minipitft13.dtbo \
33 miniuart-bt.dtbo \
34 mmc.dtbo \
35 --- a/arch/arm/boot/dts/overlays/README
36 +++ b/arch/arm/boot/dts/overlays/README
37 @@ -2088,6 +2088,34 @@ Load: dtoverlay=midi-uart1
38 Params: <None>
39
40
41 +Name: midi-uart2
42 +Info: Configures UART2 (ttyAMA1) so that a requested 38.4kbaud actually gets
43 + 31.25kbaud, the frequency required for MIDI
44 +Load: dtoverlay=midi-uart2
45 +Params: <None>
46 +
47 +
48 +Name: midi-uart3
49 +Info: Configures UART3 (ttyAMA2) so that a requested 38.4kbaud actually gets
50 + 31.25kbaud, the frequency required for MIDI
51 +Load: dtoverlay=midi-uart3
52 +Params: <None>
53 +
54 +
55 +Name: midi-uart4
56 +Info: Configures UART4 (ttyAMA3) so that a requested 38.4kbaud actually gets
57 + 31.25kbaud, the frequency required for MIDI
58 +Load: dtoverlay=midi-uart4
59 +Params: <None>
60 +
61 +
62 +Name: midi-uart5
63 +Info: Configures UART5 (ttyAMA4) so that a requested 38.4kbaud actually gets
64 + 31.25kbaud, the frequency required for MIDI
65 +Load: dtoverlay=midi-uart5
66 +Params: <None>
67 +
68 +
69 Name: minipitft13
70 Info: Overlay for AdaFruit Mini Pi 1.3" TFT via SPI using fbtft driver.
71 Load: dtoverlay=minipitft13,<param>=<val>
72 --- /dev/null
73 +++ b/arch/arm/boot/dts/overlays/midi-uart2-overlay.dts
74 @@ -0,0 +1,37 @@
75 +/dts-v1/;
76 +/plugin/;
77 +
78 +#include <dt-bindings/clock/bcm2835.h>
79 +
80 +/*
81 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
82 + * baudrate. The real clock is 48MHz, which we scale so that requesting
83 + * 38.4kHz results in an actual 31.25kHz.
84 + *
85 + * 48000000*38400/31250 = 58982400
86 + */
87 +
88 +/{
89 + compatible = "brcm,bcm2835";
90 +
91 + fragment@0 {
92 + target-path = "/";
93 + __overlay__ {
94 + midi_clk: midi_clk2 {
95 + compatible = "fixed-clock";
96 + #clock-cells = <0>;
97 + clock-output-names = "uart2_pclk";
98 + clock-frequency = <58982400>;
99 + };
100 + };
101 + };
102 +
103 + fragment@1 {
104 + target = <&uart2>;
105 + __overlay__ {
106 + clocks = <&midi_clk>,
107 + <&clocks BCM2835_CLOCK_VPU>;
108 + };
109 + };
110 +};
111 +
112 --- /dev/null
113 +++ b/arch/arm/boot/dts/overlays/midi-uart3-overlay.dts
114 @@ -0,0 +1,38 @@
115 +/dts-v1/;
116 +/plugin/;
117 +
118 +#include <dt-bindings/clock/bcm2835.h>
119 +
120 +/*
121 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
122 + * baudrate. The real clock is 48MHz, which we scale so that requesting
123 + * 38.4kHz results in an actual 31.25kHz.
124 + *
125 + * 48000000*38400/31250 = 58982400
126 + */
127 +
128 +/{
129 + compatible = "brcm,bcm2835";
130 +
131 + fragment@0 {
132 + target-path = "/";
133 + __overlay__ {
134 + midi_clk: midi_clk3 {
135 + compatible = "fixed-clock";
136 + #clock-cells = <0>;
137 + clock-output-names = "uart3_pclk";
138 + clock-frequency = <58982400>;
139 + };
140 + };
141 + };
142 +
143 + fragment@1 {
144 + target = <&uart3>;
145 + __overlay__ {
146 + clocks = <&midi_clk>,
147 + <&clocks BCM2835_CLOCK_VPU>;
148 + };
149 + };
150 +};
151 +
152 +
153 --- /dev/null
154 +++ b/arch/arm/boot/dts/overlays/midi-uart4-overlay.dts
155 @@ -0,0 +1,38 @@
156 +/dts-v1/;
157 +/plugin/;
158 +
159 +#include <dt-bindings/clock/bcm2835.h>
160 +
161 +/*
162 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
163 + * baudrate. The real clock is 48MHz, which we scale so that requesting
164 + * 38.4kHz results in an actual 31.25kHz.
165 + *
166 + * 48000000*38400/31250 = 58982400
167 + */
168 +
169 +/{
170 + compatible = "brcm,bcm2835";
171 +
172 + fragment@0 {
173 + target-path = "/";
174 + __overlay__ {
175 + midi_clk: midi_clk4 {
176 + compatible = "fixed-clock";
177 + #clock-cells = <0>;
178 + clock-output-names = "uart4_pclk";
179 + clock-frequency = <58982400>;
180 + };
181 + };
182 + };
183 +
184 + fragment@1 {
185 + target = <&uart4>;
186 + __overlay__ {
187 + clocks = <&midi_clk>,
188 + <&clocks BCM2835_CLOCK_VPU>;
189 + };
190 + };
191 +};
192 +
193 +
194 --- /dev/null
195 +++ b/arch/arm/boot/dts/overlays/midi-uart5-overlay.dts
196 @@ -0,0 +1,38 @@
197 +/dts-v1/;
198 +/plugin/;
199 +
200 +#include <dt-bindings/clock/bcm2835.h>
201 +
202 +/*
203 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
204 + * baudrate. The real clock is 48MHz, which we scale so that requesting
205 + * 38.4kHz results in an actual 31.25kHz.
206 + *
207 + * 48000000*38400/31250 = 58982400
208 + */
209 +
210 +/{
211 + compatible = "brcm,bcm2835";
212 +
213 + fragment@0 {
214 + target-path = "/";
215 + __overlay__ {
216 + midi_clk: midi_clk5 {
217 + compatible = "fixed-clock";
218 + #clock-cells = <0>;
219 + clock-output-names = "uart5_pclk";
220 + clock-frequency = <58982400>;
221 + };
222 + };
223 + };
224 +
225 + fragment@1 {
226 + target = <&uart5>;
227 + __overlay__ {
228 + clocks = <&midi_clk>,
229 + <&clocks BCM2835_CLOCK_VPU>;
230 + };
231 + };
232 +};
233 +
234 +