lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 2 Nov 2020 09:01:22 +0000
From:   Lee Jones <lee.jones@...aro.org>
To:     Nicolas Ferre <nicolas.ferre@...rochip.com>
Cc:     Codrin Ciubotariu <codrin.ciubotariu@...rochip.com>,
        devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
        linux-kernel@...r.kernel.org,
        Richard Genoud <richard.genoud@...il.com>,
        alexandre.belloni@...tlin.com, ludovic.desroches@...rochip.com
Subject: Re: [PATCH] ARM: dts: at91: add serial MFD sub-node for usart

On Fri, 30 Oct 2020, Nicolas Ferre wrote:

> On 30/10/2020 at 12:07, Codrin Ciubotariu wrote:
> > The "atmel,at91sam9260-usart" driver is a MFD driver, so it needs sub-nodes
> > to match the registered platform device. For this reason, we add a serial
> > subnode to all the "atmel,at91sam9260-usart" serial compatible nods. This
> > will also remove the boot warning:
> > "atmel_usart_serial: Failed to locate of_node [id: -2]"
> 
> I don't remember this warning was raised previously even if the MFD driver
> was added a while ago (Sept. 2018).
> 
> I would say it's due to 466a62d7642f ("mfd: core: Make a best effort attempt
> to match devices with the correct of_nodes") which was added on mid August
> and corrected with 22380b65dc70 ("mfd: mfd-core: Ensure disabled devices are
> ignored without error") but maybe not covering our case.
> 
> So, well, I don't know what's the best option to this change. Moreover, I
> would say that all other USART related properties go into the child not if
> there is a need for one.
> 
> Lee, I suspect that we're not the only ones experiencing this ugly warning
> during the boot log: can you point us out how to deal with it for our
> existing atmel_serial.c users?

You should not be instantiating drivers through Device Tree which are
not described there.  If the correct representation of the H/W already
exists in Device Tree i.e. no SPI and UART IP really exists, use the
MFD core API to register them utilising the platform API instead.

This should do it:

diff --git a/drivers/mfd/at91-usart.c b/drivers/mfd/at91-usart.c
index 6a8351a4588e2..939bd2332a4f6 100644
--- a/drivers/mfd/at91-usart.c
+++ b/drivers/mfd/at91-usart.c
@@ -17,12 +17,10 @@
 
 static const struct mfd_cell at91_usart_spi_subdev = {
        .name = "at91_usart_spi",
-       .of_compatible = "microchip,at91sam9g45-usart-spi",
 };
 
 static const struct mfd_cell at91_usart_serial_subdev = {
        .name = "atmel_usart_serial",
-       .of_compatible = "atmel,at91rm9200-usart-serial",
 };
 
 static int at91_usart_mode_probe(struct platform_device *pdev)

> > Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@...rochip.com>
> > ---
> >   arch/arm/boot/dts/at91-sam9x60ek.dts     |  3 +++
> >   arch/arm/boot/dts/at91rm9200.dtsi        | 15 ++++++++++++
> >   arch/arm/boot/dts/at91sam9261.dtsi       | 12 ++++++++++
> >   arch/arm/boot/dts/at91sam9261ek.dts      |  3 +++
> >   arch/arm/boot/dts/at91sam9263.dtsi       | 12 ++++++++++
> >   arch/arm/boot/dts/at91sam9g45.dtsi       | 15 ++++++++++++
> >   arch/arm/boot/dts/at91sam9n12.dtsi       | 15 ++++++++++++
> >   arch/arm/boot/dts/at91sam9rl.dtsi        | 15 ++++++++++++
> >   arch/arm/boot/dts/at91sam9x5.dtsi        | 18 ++++++++++++++
> >   arch/arm/boot/dts/at91sam9x5_usart3.dtsi |  3 +++
> >   arch/arm/boot/dts/sam9x60.dtsi           |  3 +++
> >   arch/arm/boot/dts/sama5d2.dtsi           | 30 ++++++++++++++++++++++++
> >   arch/arm/boot/dts/sama5d3.dtsi           | 18 ++++++++++++++
> >   arch/arm/boot/dts/sama5d3_uart.dtsi      |  6 +++++
> >   arch/arm/boot/dts/sama5d4.dtsi           | 30 ++++++++++++++++++++++++
> >   15 files changed, 198 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
> > index eae28b82c7fd..e317531f7363 100644
> > --- a/arch/arm/boot/dts/at91-sam9x60ek.dts
> > +++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
> > @@ -280,6 +280,9 @@ AT91_XDMAC_DT_PERID(10))>,
> >   		atmel,use-dma-rx;
> >   		atmel,use-dma-tx;
> >   		status = "okay";
> > +		serial {
> > +			compatible = "atmel,at91rm9200-usart-serial";
> > +		};
> >   	};
> >   };
> > diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
> > index d1181ead18e5..2abb646f6b68 100644
> > --- a/arch/arm/boot/dts/at91rm9200.dtsi
> > +++ b/arch/arm/boot/dts/at91rm9200.dtsi
> > @@ -602,6 +602,9 @@ dbgu: serial@...ff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@...c0000 {
> > @@ -615,6 +618,9 @@ usart0: serial@...c0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...c4000 {
> > @@ -628,6 +634,9 @@ usart1: serial@...c4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...c8000 {
> > @@ -641,6 +650,9 @@ usart2: serial@...c8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...cc000 {
> > @@ -654,6 +666,9 @@ usart3: serial@...cc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usb1: gadget@...b0000 {
> > diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
> > index 7adc36ca8a46..e9602378f92c 100644
> > --- a/arch/arm/boot/dts/at91sam9261.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9261.dtsi
> > @@ -187,6 +187,9 @@ usart0: serial@...b0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...b4000 {
> > @@ -200,6 +203,9 @@ usart1: serial@...b4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...b8000{
> > @@ -213,6 +219,9 @@ usart2: serial@...b8000{
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@...bc000 {
> > @@ -307,6 +316,9 @@ dbgu: serial@...ff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@...ff400 {
> > diff --git a/arch/arm/boot/dts/at91sam9261ek.dts b/arch/arm/boot/dts/at91sam9261ek.dts
> > index beed819609e8..fae5d408268d 100644
> > --- a/arch/arm/boot/dts/at91sam9261ek.dts
> > +++ b/arch/arm/boot/dts/at91sam9261ek.dts
> > @@ -176,6 +176,9 @@ tsc2046@2 {
> >   			dbgu: serial@...ff200 {
> >   				status = "okay";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			watchdog@...ffd40 {
> > diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
> > index fe45d96239c9..e4d370b582c8 100644
> > --- a/arch/arm/boot/dts/at91sam9263.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9263.dtsi
> > @@ -546,6 +546,9 @@ dbgu: serial@...fee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@...8c000 {
> > @@ -559,6 +562,9 @@ usart0: serial@...8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...90000 {
> > @@ -572,6 +578,9 @@ usart1: serial@...90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...94000 {
> > @@ -585,6 +594,9 @@ usart2: serial@...94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@...98000 {
> > diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
> > index 19fc748a87c5..8aad026f10ec 100644
> > --- a/arch/arm/boot/dts/at91sam9g45.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9g45.dtsi
> > @@ -682,6 +682,9 @@ dbgu: serial@...fee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@...8c000 {
> > @@ -695,6 +698,9 @@ usart0: serial@...8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...90000 {
> > @@ -708,6 +714,9 @@ usart1: serial@...90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...94000 {
> > @@ -721,6 +730,9 @@ usart2: serial@...94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...98000 {
> > @@ -734,6 +746,9 @@ usart3: serial@...98000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			macb0: ethernet@...bc000 {
> > diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
> > index 0785389f5507..f83d1a313edf 100644
> > --- a/arch/arm/boot/dts/at91sam9n12.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9n12.dtsi
> > @@ -599,6 +599,9 @@ dbgu: serial@...ff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@...10000 {
> > @@ -624,6 +627,9 @@ usart0: serial@...1c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...20000 {
> > @@ -635,6 +641,9 @@ usart1: serial@...20000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...24000 {
> > @@ -646,6 +655,9 @@ usart2: serial@...24000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...28000 {
> > @@ -657,6 +669,9 @@ usart3: serial@...28000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@...10000 {
> > diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
> > index 5653e70c84b4..5480b6542c6a 100644
> > --- a/arch/arm/boot/dts/at91sam9rl.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9rl.dtsi
> > @@ -183,6 +183,9 @@ usart0: serial@...b0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...b4000 {
> > @@ -196,6 +199,9 @@ usart1: serial@...b4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...b8000 {
> > @@ -209,6 +215,9 @@ usart2: serial@...b8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...bc000 {
> > @@ -222,6 +231,9 @@ usart3: serial@...bc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@...c0000 {
> > @@ -353,6 +365,9 @@ dbgu: serial@...ff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@...ff400 {
> > diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
> > index 4cdb05079cc7..52aa49b007d1 100644
> > --- a/arch/arm/boot/dts/at91sam9x5.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
> > @@ -683,6 +683,9 @@ dbgu: serial@...ff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@...1c000 {
> > @@ -697,6 +700,9 @@ usart0: serial@...1c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...20000 {
> > @@ -711,6 +717,9 @@ usart1: serial@...20000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...24000 {
> > @@ -725,6 +734,9 @@ usart2: serial@...24000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@...10000 {
> > @@ -781,6 +793,9 @@ uart0: serial@...40000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@...44000 {
> > @@ -792,6 +807,9 @@ uart1: serial@...44000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			adc0: adc@...4c000 {
> > diff --git a/arch/arm/boot/dts/at91sam9x5_usart3.dtsi b/arch/arm/boot/dts/at91sam9x5_usart3.dtsi
> > index 098d3fef5c37..a80593188ac1 100644
> > --- a/arch/arm/boot/dts/at91sam9x5_usart3.dtsi
> > +++ b/arch/arm/boot/dts/at91sam9x5_usart3.dtsi
> > @@ -53,6 +53,9 @@ usart3: serial@...28000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   		};
> >   	};
> > diff --git a/arch/arm/boot/dts/sam9x60.dtsi b/arch/arm/boot/dts/sam9x60.dtsi
> > index 84066c1298df..ab4d80134d86 100644
> > --- a/arch/arm/boot/dts/sam9x60.dtsi
> > +++ b/arch/arm/boot/dts/sam9x60.dtsi
> > @@ -598,6 +598,9 @@ AT91_XDMAC_DT_PERID(28))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl: pinctrl@...ff400 {
> > diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
> > index 2ddc85dff8ce..26f231147d21 100644
> > --- a/arch/arm/boot/dts/sama5d2.dtsi
> > +++ b/arch/arm/boot/dts/sama5d2.dtsi
> > @@ -444,6 +444,9 @@ AT91_XDMAC_DT_PERID(35))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@...20000 {
> > @@ -460,6 +463,9 @@ AT91_XDMAC_DT_PERID(37))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart2: serial@...24000 {
> > @@ -476,6 +482,9 @@ AT91_XDMAC_DT_PERID(39))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 26>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@...28000 {
> > @@ -536,6 +545,9 @@ AT91_XDMAC_DT_PER_IF(1) |
> >   					dma-names = "tx", "rx";
> >   					atmel,fifo-size = <32>;
> >   					status = "disabled";
> > +					serial {
> > +						compatible = "atmel,at91rm9200-usart-serial";
> > +					};
> >   				};
> >   				spi2: spi@400 {
> > @@ -606,6 +618,9 @@ AT91_XDMAC_DT_PER_IF(1) |
> >   					dma-names = "tx", "rx";
> >   					atmel,fifo-size = <32>;
> >   					status = "disabled";
> > +					serial {
> > +						compatible = "atmel,at91rm9200-usart-serial";
> > +					};
> >   				};
> >   				spi3: spi@400 {
> > @@ -771,6 +786,9 @@ AT91_XDMAC_DT_PERID(41))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart4: serial@...0c000 {
> > @@ -787,6 +805,9 @@ AT91_XDMAC_DT_PERID(43))>,
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			flx2: flexcom@...10000 {
> > @@ -815,6 +836,9 @@ AT91_XDMAC_DT_PER_IF(1) |
> >   					dma-names = "tx", "rx";
> >   					atmel,fifo-size = <32>;
> >   					status = "disabled";
> > +					serial {
> > +						compatible = "atmel,at91rm9200-usart-serial";
> > +					};
> >   				};
> >   				spi4: spi@400 {
> > @@ -885,6 +909,9 @@ AT91_XDMAC_DT_PER_IF(1) |
> >   					dma-names = "tx", "rx";
> >   					atmel,fifo-size = <32>;
> >   					status = "disabled";
> > +					serial {
> > +						compatible = "atmel,at91rm9200-usart-serial";
> > +					};
> >   				};
> >   				spi5: spi@400 {
> > @@ -956,6 +983,9 @@ AT91_XDMAC_DT_PER_IF(1) |
> >   					dma-names = "tx", "rx";
> >   					atmel,fifo-size = <32>;
> >   					status = "disabled";
> > +					serial {
> > +						compatible = "atmel,at91rm9200-usart-serial";
> > +					};
> >   				};
> >   				spi6: spi@400 {
> > diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
> > index 86137f8d2b45..1791de52d1c3 100644
> > --- a/arch/arm/boot/dts/sama5d3.dtsi
> > +++ b/arch/arm/boot/dts/sama5d3.dtsi
> > @@ -203,6 +203,9 @@ usart0: serial@...1c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...20000 {
> > @@ -217,6 +220,9 @@ usart1: serial@...20000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart0: serial@...24000 {
> > @@ -228,6 +234,9 @@ uart0: serial@...24000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pwm0: pwm@...2c000 {
> > @@ -389,6 +398,9 @@ usart2: serial@...20000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...24000 {
> > @@ -403,6 +415,9 @@ usart3: serial@...24000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			sha@...34000 {
> > @@ -497,6 +512,9 @@ dbgu: serial@...fee00 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			aic: interrupt-controller@...ff000 {
> > diff --git a/arch/arm/boot/dts/sama5d3_uart.dtsi b/arch/arm/boot/dts/sama5d3_uart.dtsi
> > index a3eaba995cf4..b9f83b771a09 100644
> > --- a/arch/arm/boot/dts/sama5d3_uart.dtsi
> > +++ b/arch/arm/boot/dts/sama5d3_uart.dtsi
> > @@ -45,6 +45,9 @@ uart0: serial@...24000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@...28000 {
> > @@ -56,6 +59,9 @@ uart1: serial@...28000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   		};
> >   	};
> > diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
> > index 04f24cf752d3..0627fa8cdaf4 100644
> > --- a/arch/arm/boot/dts/sama5d4.dtsi
> > +++ b/arch/arm/boot/dts/sama5d4.dtsi
> > @@ -284,6 +284,9 @@ uart0: serial@...04000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@...08000 {
> > @@ -443,6 +446,9 @@ usart0: serial@...2c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@...30000 {
> > @@ -461,6 +467,9 @@ usart1: serial@...30000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			mmc1: mmc@...00000 {
> > @@ -496,6 +505,9 @@ uart1: serial@...04000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@...08000 {
> > @@ -514,6 +526,9 @@ usart2: serial@...08000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@...0c000 {
> > @@ -532,6 +547,9 @@ usart3: serial@...0c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart4: serial@...10000 {
> > @@ -550,6 +568,9 @@ usart4: serial@...10000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 31>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc1: ssc@...14000 {
> > @@ -568,6 +589,9 @@ ssc1: ssc@...14000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
> >   				clock-names = "pclk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi1: spi@...18000 {
> > @@ -588,6 +612,9 @@ spi1: spi@...18000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
> >   				clock-names = "spi_clk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi2: spi@...1c000 {
> > @@ -794,6 +821,9 @@ dbgu: serial@...69000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> > 
> 
> 

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ