1 From a934bc7776953d7ce8e27c2d8720de58d5ceeeef Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.com>
3 Date: Thu, 30 Jul 2020 15:13:09 +0100
4 Subject: [PATCH] overlays: Fix sc16is75x overlays w.r.t. serdev
6 Enabling serdev support in rpi-5.4.y had the unintended consequence of
7 making any UART device node with a subnode look like a "serdev" node,
8 which prevents it from having the usual /dev/ttyXXX character device.
9 Solve the problem by moving the subnode (a static clock declaration)
12 At the same time, regularise (and sometimes correct) the overlays.
14 See: https://github.com/raspberrypi/linux/issues/3765
16 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
18 .../dts/overlays/sc16is750-i2c-overlay.dts | 23 +++++++++-------
19 .../dts/overlays/sc16is752-i2c-overlay.dts | 27 ++++++++++---------
20 .../dts/overlays/sc16is752-spi0-overlay.dts | 21 +++++++++------
21 .../dts/overlays/sc16is752-spi1-overlay.dts | 6 ++---
22 4 files changed, 45 insertions(+), 32 deletions(-)
24 --- a/arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
25 +++ b/arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
28 sc16is750: sc16is750@48 {
29 compatible = "nxp,sc16is750";
30 - reg = <0x48>; /* address */
31 + reg = <0x48>; /* i2c address */
32 clocks = <&sc16is750_clk>;
33 interrupt-parent = <&gpio>;
34 interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
38 - sc16is750_clk: sc16is750_clk {
39 - compatible = "fixed-clock";
41 - clock-frequency = <14745600>;
43 + i2c-max-frequency = <400000>;
51 + sc16is750_clk: sc16is750_i2c_clk@48 {
52 + compatible = "fixed-clock";
54 + clock-frequency = <14745600>;
60 int_pin = <&sc16is750>,"interrupts:0";
61 - addr = <&sc16is750>,"reg:0",<&sc16is750_clk>,"name";
62 + addr = <&sc16is750>,"reg:0", <&sc16is750_clk>,"name";
63 xtal = <&sc16is750_clk>,"clock-frequency:0";
67 --- a/arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
68 +++ b/arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
70 compatible = "brcm,bcm2835";
75 - frag1: __overlay__ {
76 + target = <&i2c_arm>;
82 sc16is752: sc16is752@48 {
83 compatible = "nxp,sc16is752";
84 - reg = <0x48>; // i2c address
85 + reg = <0x48>; /* i2c address */
86 clocks = <&sc16is752_clk>;
87 interrupt-parent = <&gpio>;
88 - interrupts = <24 0x2>; /* IRQ_TYPE_EDGE_FALLING */
89 + interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
93 i2c-max-frequency = <400000>;
99 - sc16is752_clk: sc16is752_clk {
100 - compatible = "fixed-clock";
101 - #clock-cells = <0>;
102 - clock-frequency = <14745600>;
107 + sc16is752_clk: sc16is752_i2c_clk@48 {
108 + compatible = "fixed-clock";
109 + #clock-cells = <0>;
110 + clock-frequency = <14745600>;
114 --- a/arch/arm/boot/dts/overlays/sc16is752-spi0-overlay.dts
115 +++ b/arch/arm/boot/dts/overlays/sc16is752-spi0-overlay.dts
117 clocks = <&sc16is752_clk>;
118 interrupt-parent = <&gpio>;
119 interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
123 spi-max-frequency = <4000000>;
125 - sc16is752_clk: sc16is752_clk {
126 - compatible = "fixed-clock";
127 - #clock-cells = <0>;
128 - clock-frequency = <14745600>;
140 + sc16is752_clk: sc16is752_spi0_0_clk {
141 + compatible = "fixed-clock";
142 + #clock-cells = <0>;
143 + clock-frequency = <14745600>;
149 int_pin = <&sc16is752>,"interrupts:0";
150 - xtal = <&sc16is752_clk>, "clock-frequency:0";
151 + xtal = <&sc16is752_clk>,"clock-frequency:0";
154 --- a/arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
155 +++ b/arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
160 - frag1: __overlay__ {
162 #address-cells = <1>;
164 pinctrl-names = "default";
166 clocks = <&sc16is752_clk>;
167 interrupt-parent = <&gpio>;
168 interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
172 spi-max-frequency = <4000000>;
178 - sc16is752_clk: sc16is752_spi1_clk {
179 + sc16is752_clk: sc16is752_spi1_0_clk {
180 compatible = "fixed-clock";
182 clock-frequency = <14745600>;