mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
BCM270X_DT: Add midi-uart1 overlay
Add a scaler to the ttyS0 clock so that requesting 38400 baud results in an approximately 31250 baud signal. This is analagous to midi-uart0, except for ttyS0, which may be useful on Pi3 and also may avoid an issue with ttyAMA0 failing to synchronise to an active data stream. See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=183860 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
This commit is contained in:
@@ -58,6 +58,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
mcp2515-can1.dtbo \
|
||||
mcp3008.dtbo \
|
||||
midi-uart0.dtbo \
|
||||
midi-uart1.dtbo \
|
||||
mmc.dtbo \
|
||||
mpu6050.dtbo \
|
||||
mz61581.dtbo \
|
||||
|
||||
@@ -892,6 +892,13 @@ Load: dtoverlay=midi-uart0
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: midi-uart1
|
||||
Info: Configures UART1 (ttyS0) so that a requested 38.4kbaud actually gets
|
||||
31.25kbaud, the frequency required for MIDI
|
||||
Load: dtoverlay=midi-uart1
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: mmc
|
||||
Info: Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
|
||||
Load: dtoverlay=mmc,<param>=<val>
|
||||
|
||||
43
arch/arm/boot/dts/overlays/midi-uart1-overlay.dts
Normal file
43
arch/arm/boot/dts/overlays/midi-uart1-overlay.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/clock/bcm2835-aux.h>
|
||||
|
||||
/*
|
||||
* Fake a higher clock rate to get a larger divisor, and thereby a lower
|
||||
* baudrate. The real clock is 48MHz, which we scale so that requesting
|
||||
* 38.4kHz results in an actual 31.25kHz.
|
||||
*
|
||||
* 48000000*38400/31250 = 58982400
|
||||
*/
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/clocks";
|
||||
__overlay__ {
|
||||
midi_clk: clock@5 {
|
||||
compatible = "fixed-factor-clock";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&aux BCM2835_AUX_CLOCK_UART>;
|
||||
clock-mult = <38400>;
|
||||
clock-div = <31250>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&uart1>;
|
||||
__overlay__ {
|
||||
clocks = <&midi_clk>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&aux>;
|
||||
__overlay__ {
|
||||
clock-output-names = "aux_uart", "aux_spi1", "aux_spi2";
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user