brcm2708: switch to linux 4.4 and update patches
[openwrt.git] / target / linux / brcm2708 / patches-4.1 / 0098-BCM270X_DT-Add-overlay-to-enable-uart1.patch
1 From dcbf44736f78f3c7899b4ab3ef6342a0c18dd767 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Fri, 26 Jun 2015 08:50:11 +0100
4 Subject: [PATCH 098/222] BCM270X_DT: Add overlay to enable uart1
5
6 N.B. The UART1 clock is derived from the core clock. The firmware
7 will update clock-frequency if core_freq is set, but be aware
8 that unless force_turbo=1 while overclocking then the baud rate
9 will vary with ARM activity.
10 ---
11  arch/arm/boot/dts/bcm2708-rpi-b-plus.dts     |  1 +
12  arch/arm/boot/dts/bcm2708-rpi-b.dts          |  1 +
13  arch/arm/boot/dts/bcm2708-rpi-cm.dts         |  1 +
14  arch/arm/boot/dts/bcm2709-rpi-2-b.dts        |  1 +
15  arch/arm/boot/dts/overlays/Makefile          |  1 +
16  arch/arm/boot/dts/overlays/README            |  8 ++++++
17  arch/arm/boot/dts/overlays/uart1-overlay.dts | 38 ++++++++++++++++++++++++++++
18  arch/arm/configs/bcm2709_defconfig           |  2 +-
19  arch/arm/configs/bcmrpi_defconfig            |  2 +-
20  9 files changed, 53 insertions(+), 2 deletions(-)
21  create mode 100644 arch/arm/boot/dts/overlays/uart1-overlay.dts
22
23 --- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
24 +++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
25 @@ -103,6 +103,7 @@
26         __overrides__ {
27                 uart0 = <&uart0>,"status";
28                 uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
29 +               uart1_clkrate = <&uart1>,"clock-frequency:0";
30                 i2s = <&i2s>,"status";
31                 spi = <&spi0>,"status";
32                 i2c0 = <&i2c0>,"status";
33 --- a/arch/arm/boot/dts/bcm2708-rpi-b.dts
34 +++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
35 @@ -97,6 +97,7 @@
36         __overrides__ {
37                 uart0 = <&uart0>,"status";
38                 uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
39 +               uart1_clkrate = <&uart1>,"clock-frequency:0";
40                 i2s = <&i2s>,"status";
41                 spi = <&spi0>,"status";
42                 i2c0 = <&i2c0>,"status";
43 --- a/arch/arm/boot/dts/bcm2708-rpi-cm.dts
44 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dts
45 @@ -79,6 +79,7 @@
46         __overrides__ {
47                 uart0 = <&uart0>,"status";
48                 uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
49 +               uart1_clkrate = <&uart1>,"clock-frequency:0";
50                 i2s = <&i2s>,"status";
51                 spi = <&spi0>,"status";
52                 i2c0 = <&i2c0>,"status";
53 --- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
54 +++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
55 @@ -103,6 +103,7 @@
56         __overrides__ {
57                 uart0 = <&uart0>,"status";
58                 uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
59 +               uart1_clkrate = <&uart1>,"clock-frequency:0";
60                 i2s = <&i2s>,"status";
61                 spi = <&spi0>,"status";
62                 i2c0 = <&i2c0>,"status";
63 --- a/arch/arm/boot/dts/overlays/Makefile
64 +++ b/arch/arm/boot/dts/overlays/Makefile
65 @@ -42,6 +42,7 @@ dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay
66  dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb
67  dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb
68  dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb
69 +dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb
70  dtb-$(RPI_DT_OVERLAYS) += w1-gpio-overlay.dtb
71  dtb-$(RPI_DT_OVERLAYS) += w1-gpio-pullup-overlay.dtb
72  
73 --- a/arch/arm/boot/dts/overlays/README
74 +++ b/arch/arm/boot/dts/overlays/README
75 @@ -489,6 +489,14 @@ Params: speed                    Display
76                  dtoverlay=tinylcd35,touch,touchgpio=3
77  
78  
79 +Name:   uart1
80 +Info:   Enable uart1 in place of uart0
81 +Load:   dtoverlay=uart1,<param>=<val>
82 +Params: txd1_pin                 GPIO pin for TXD1 (14, 32 or 40 - default 14)
83 +
84 +        rxd1_pin                 GPIO pin for RXD1 (15, 33 or 41 - default 15)
85 +
86 +
87  Name:   w1-gpio
88  Info:   Configures the w1-gpio Onewire interface module.
89          Use this overlay if you *don't* need a GPIO to drive an external pullup.
90 --- /dev/null
91 +++ b/arch/arm/boot/dts/overlays/uart1-overlay.dts
92 @@ -0,0 +1,38 @@
93 +/dts-v1/;
94 +/plugin/;
95 +
96 +/{
97 +       compatible = "brcm,bcm2708";
98 +
99 +       fragment@0 {
100 +               target = <&uart1>;
101 +               __overlay__ {
102 +                       pinctrl-names = "default";
103 +                       pinctrl-0 = <&uart1_pins>;
104 +                       status = "okay";
105 +               };
106 +       };
107 +
108 +       fragment@1 {
109 +               target = <&gpio>;
110 +               __overlay__ {
111 +                       uart1_pins: uart1_pins {
112 +                               brcm,pins = <14 15>;
113 +                               brcm,function = <2>; /* alt5 */
114 +                               brcm,pull = <0 2>;
115 +                       };
116 +               };
117 +       };
118 +
119 +       fragment@2 {
120 +               target-path = "/chosen";
121 +               __overlay__ {
122 +                       bootargs = "8250.nr_uarts=1";
123 +               };
124 +       };
125 +
126 +       __overrides__ {
127 +               txd1_pin = <&uart1_pins>,"brcm,pins:0";
128 +               rxd1_pin = <&uart1_pins>,"brcm,pins:4";
129 +       };
130 +};
131 --- a/arch/arm/configs/bcm2709_defconfig
132 +++ b/arch/arm/configs/bcm2709_defconfig
133 @@ -562,7 +562,7 @@ CONFIG_SERIAL_8250=y
134  CONFIG_SERIAL_8250_CONSOLE=y
135  # CONFIG_SERIAL_8250_DMA is not set
136  CONFIG_SERIAL_8250_NR_UARTS=1
137 -CONFIG_SERIAL_8250_RUNTIME_UARTS=1
138 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0
139  CONFIG_SERIAL_AMBA_PL011=y
140  CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
141  CONFIG_SERIAL_OF_PLATFORM=y
142 --- a/arch/arm/configs/bcmrpi_defconfig
143 +++ b/arch/arm/configs/bcmrpi_defconfig
144 @@ -555,7 +555,7 @@ CONFIG_SERIAL_8250=y
145  CONFIG_SERIAL_8250_CONSOLE=y
146  # CONFIG_SERIAL_8250_DMA is not set
147  CONFIG_SERIAL_8250_NR_UARTS=1
148 -CONFIG_SERIAL_8250_RUNTIME_UARTS=1
149 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0
150  CONFIG_SERIAL_AMBA_PL011=y
151  CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
152  CONFIG_SERIAL_OF_PLATFORM=y