1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
From f0f4af3ddb0fc5ea529c0147ebf8be47b1a80335 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Fri, 12 Jan 2018 09:15:01 +0000
Subject: [PATCH 159/454] overlays: Add uart0 overlay to change pin usage
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 13 +++++++-
arch/arm/boot/dts/overlays/uart0-overlay.dts | 32 ++++++++++++++++++++
3 files changed, 45 insertions(+), 1 deletion(-)
create mode 100755 arch/arm/boot/dts/overlays/uart0-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -117,6 +117,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
spi2-2cs.dtbo \
spi2-3cs.dtbo \
tinylcd35.dtbo \
+ uart0.dtbo \
uart1.dtbo \
vc4-fkms-v3d.dtbo \
vc4-kms-v3d.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1671,8 +1671,19 @@ Params: speed Display
dtoverlay=tinylcd35,touch,touchgpio=3
+Name: uart0
+Info: Change the pin usage of uart0
+Load: dtoverlay=uart0,<param>=<val>
+Params: txd0_pin GPIO pin for TXD0 (14, 32 or 36 - default 14)
+
+ rxd0_pin GPIO pin for RXD0 (15, 33 or 37 - default 15)
+
+ pin_func Alternative pin function - 4(Alt0) for 14&15,
+ 7(Alt3) for 32&33, 6(Alt2) for 36&37
+
+
Name: uart1
-Info: Enable uart1 in place of uart0
+Info: Change the pin usage of uart1
Load: dtoverlay=uart1,<param>=<val>
Params: txd1_pin GPIO pin for TXD1 (14, 32 or 40 - default 14)
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/uart0-overlay.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+/plugin/;
+
+/{
+ compatible = "brcm,bcm2708";
+
+ fragment@0 {
+ target = <&uart0>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&gpio>;
+ __overlay__ {
+ uart0_pins: uart0_pins {
+ brcm,pins = <14 15>;
+ brcm,function = <4>; /* alt0 */
+ brcm,pull = <0 2>;
+ };
+ };
+ };
+
+ __overrides__ {
+ txd0_pin = <&uart0_pins>,"brcm,pins:0";
+ rxd0_pin = <&uart0_pins>,"brcm,pins:4";
+ pin_func = <&uart0_pins>,"brcm,function:0";
+ };
+};
|