All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: devicetree@vger.kernel.org, alexandre.belloni@bootlin.com,
	Richard Genoud <richard.genoud@gmail.com>,
	linux-kernel@vger.kernel.org, ludovic.desroches@microchip.com,
	Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: dts: at91: add serial MFD sub-node for usart
Date: Mon, 2 Nov 2020 09:01:22 +0000	[thread overview]
Message-ID: <20201102090122.GF4127@dell> (raw)
In-Reply-To: <b054ce5c-58fd-dd86-2cb6-1e1f06a0899e@microchip.com>

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@microchip.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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fffc0000 {
> > @@ -615,6 +618,9 @@ usart0: serial@fffc0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffc4000 {
> > @@ -628,6 +634,9 @@ usart1: serial@fffc4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffc8000 {
> > @@ -641,6 +650,9 @@ usart2: serial@fffc8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fffcc000 {
> > @@ -654,6 +666,9 @@ usart3: serial@fffcc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usb1: gadget@fffb0000 {
> > 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@fffb0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffb4000 {
> > @@ -200,6 +203,9 @@ usart1: serial@fffb4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffb8000{
> > @@ -213,6 +219,9 @@ usart2: serial@fffb8000{
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fffbc000 {
> > @@ -307,6 +316,9 @@ dbgu: serial@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@fffff400 {
> > 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@fffff200 {
> >   				status = "okay";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			watchdog@fffffd40 {
> > 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@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fff8c000 {
> > @@ -559,6 +562,9 @@ usart0: serial@fff8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fff90000 {
> > @@ -572,6 +578,9 @@ usart1: serial@fff90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fff94000 {
> > @@ -585,6 +594,9 @@ usart2: serial@fff94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fff98000 {
> > 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@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fff8c000 {
> > @@ -695,6 +698,9 @@ usart0: serial@fff8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fff90000 {
> > @@ -708,6 +714,9 @@ usart1: serial@fff90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fff94000 {
> > @@ -721,6 +730,9 @@ usart2: serial@fff94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fff98000 {
> > @@ -734,6 +746,9 @@ usart3: serial@fff98000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			macb0: ethernet@fffbc000 {
> > 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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@f0010000 {
> > @@ -624,6 +627,9 @@ usart0: serial@f801c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8020000 {
> > @@ -635,6 +641,9 @@ usart1: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@f8024000 {
> > @@ -646,6 +655,9 @@ usart2: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@f8028000 {
> > @@ -657,6 +669,9 @@ usart3: serial@f8028000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@f8010000 {
> > 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@fffb0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffb4000 {
> > @@ -196,6 +199,9 @@ usart1: serial@fffb4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffb8000 {
> > @@ -209,6 +215,9 @@ usart2: serial@fffb8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fffbc000 {
> > @@ -222,6 +231,9 @@ usart3: serial@fffbc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fffc0000 {
> > @@ -353,6 +365,9 @@ dbgu: serial@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@fffff400 {
> > 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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@f801c000 {
> > @@ -697,6 +700,9 @@ usart0: serial@f801c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8020000 {
> > @@ -711,6 +717,9 @@ usart1: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@f8024000 {
> > @@ -725,6 +734,9 @@ usart2: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@f8010000 {
> > @@ -781,6 +793,9 @@ uart0: serial@f8040000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@f8044000 {
> > @@ -792,6 +807,9 @@ uart1: serial@f8044000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			adc0: adc@f804c000 {
> > 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@f8028000 {
> >   				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@fffff400 {
> > 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@f8020000 {
> > @@ -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@f8024000 {
> > @@ -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@f8028000 {
> > @@ -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@fc00c000 {
> > @@ -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@fc010000 {
> > @@ -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@f001c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f0020000 {
> > @@ -217,6 +220,9 @@ usart1: serial@f0020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart0: serial@f0024000 {
> > @@ -228,6 +234,9 @@ uart0: serial@f0024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pwm0: pwm@f002c000 {
> > @@ -389,6 +398,9 @@ usart2: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@f8024000 {
> > @@ -403,6 +415,9 @@ usart3: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			sha@f8034000 {
> > @@ -497,6 +512,9 @@ dbgu: serial@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			aic: interrupt-controller@fffff000 {
> > 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@f0024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@f8028000 {
> > @@ -56,6 +59,9 @@ uart1: serial@f8028000 {
> >   				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@f8004000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@f8008000 {
> > @@ -443,6 +446,9 @@ usart0: serial@f802c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8030000 {
> > @@ -461,6 +467,9 @@ usart1: serial@f8030000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			mmc1: mmc@fc000000 {
> > @@ -496,6 +505,9 @@ uart1: serial@fc004000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fc008000 {
> > @@ -514,6 +526,9 @@ usart2: serial@fc008000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fc00c000 {
> > @@ -532,6 +547,9 @@ usart3: serial@fc00c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart4: serial@fc010000 {
> > @@ -550,6 +568,9 @@ usart4: serial@fc010000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 31>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc1: ssc@fc014000 {
> > @@ -568,6 +589,9 @@ ssc1: ssc@fc014000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
> >   				clock-names = "pclk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi1: spi@fc018000 {
> > @@ -588,6 +612,9 @@ spi1: spi@fc018000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
> >   				clock-names = "spi_clk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi2: spi@fc01c000 {
> > @@ -794,6 +821,9 @@ dbgu: serial@fc069000 {
> >   				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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Richard Genoud <richard.genoud@gmail.com>,
	alexandre.belloni@bootlin.com, ludovic.desroches@microchip.com
Subject: Re: [PATCH] ARM: dts: at91: add serial MFD sub-node for usart
Date: Mon, 2 Nov 2020 09:01:22 +0000	[thread overview]
Message-ID: <20201102090122.GF4127@dell> (raw)
In-Reply-To: <b054ce5c-58fd-dd86-2cb6-1e1f06a0899e@microchip.com>

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@microchip.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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fffc0000 {
> > @@ -615,6 +618,9 @@ usart0: serial@fffc0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffc4000 {
> > @@ -628,6 +634,9 @@ usart1: serial@fffc4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffc8000 {
> > @@ -641,6 +650,9 @@ usart2: serial@fffc8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fffcc000 {
> > @@ -654,6 +666,9 @@ usart3: serial@fffcc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usb1: gadget@fffb0000 {
> > 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@fffb0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffb4000 {
> > @@ -200,6 +203,9 @@ usart1: serial@fffb4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffb8000{
> > @@ -213,6 +219,9 @@ usart2: serial@fffb8000{
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fffbc000 {
> > @@ -307,6 +316,9 @@ dbgu: serial@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@fffff400 {
> > 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@fffff200 {
> >   				status = "okay";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			watchdog@fffffd40 {
> > 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@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fff8c000 {
> > @@ -559,6 +562,9 @@ usart0: serial@fff8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fff90000 {
> > @@ -572,6 +578,9 @@ usart1: serial@fff90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fff94000 {
> > @@ -585,6 +594,9 @@ usart2: serial@fff94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fff98000 {
> > 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@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@fff8c000 {
> > @@ -695,6 +698,9 @@ usart0: serial@fff8c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fff90000 {
> > @@ -708,6 +714,9 @@ usart1: serial@fff90000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fff94000 {
> > @@ -721,6 +730,9 @@ usart2: serial@fff94000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fff98000 {
> > @@ -734,6 +746,9 @@ usart3: serial@fff98000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			macb0: ethernet@fffbc000 {
> > 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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@f0010000 {
> > @@ -624,6 +627,9 @@ usart0: serial@f801c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8020000 {
> > @@ -635,6 +641,9 @@ usart1: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@f8024000 {
> > @@ -646,6 +655,9 @@ usart2: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@f8028000 {
> > @@ -657,6 +669,9 @@ usart3: serial@f8028000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@f8010000 {
> > 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@fffb0000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@fffb4000 {
> > @@ -196,6 +199,9 @@ usart1: serial@fffb4000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fffb8000 {
> > @@ -209,6 +215,9 @@ usart2: serial@fffb8000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fffbc000 {
> > @@ -222,6 +231,9 @@ usart3: serial@fffbc000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@fffc0000 {
> > @@ -353,6 +365,9 @@ dbgu: serial@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pinctrl@fffff400 {
> > 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@fffff200 {
> >   				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart0: serial@f801c000 {
> > @@ -697,6 +700,9 @@ usart0: serial@f801c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8020000 {
> > @@ -711,6 +717,9 @@ usart1: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@f8024000 {
> > @@ -725,6 +734,9 @@ usart2: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			i2c0: i2c@f8010000 {
> > @@ -781,6 +793,9 @@ uart0: serial@f8040000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@f8044000 {
> > @@ -792,6 +807,9 @@ uart1: serial@f8044000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			adc0: adc@f804c000 {
> > 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@f8028000 {
> >   				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@fffff400 {
> > 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@f8020000 {
> > @@ -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@f8024000 {
> > @@ -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@f8028000 {
> > @@ -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@fc00c000 {
> > @@ -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@fc010000 {
> > @@ -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@f001c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f0020000 {
> > @@ -217,6 +220,9 @@ usart1: serial@f0020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart0: serial@f0024000 {
> > @@ -228,6 +234,9 @@ uart0: serial@f0024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			pwm0: pwm@f002c000 {
> > @@ -389,6 +398,9 @@ usart2: serial@f8020000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@f8024000 {
> > @@ -403,6 +415,9 @@ usart3: serial@f8024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			sha@f8034000 {
> > @@ -497,6 +512,9 @@ dbgu: serial@ffffee00 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			aic: interrupt-controller@fffff000 {
> > 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@f0024000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			uart1: serial@f8028000 {
> > @@ -56,6 +59,9 @@ uart1: serial@f8028000 {
> >   				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@f8004000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc0: ssc@f8008000 {
> > @@ -443,6 +446,9 @@ usart0: serial@f802c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart1: serial@f8030000 {
> > @@ -461,6 +467,9 @@ usart1: serial@f8030000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			mmc1: mmc@fc000000 {
> > @@ -496,6 +505,9 @@ uart1: serial@fc004000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart2: serial@fc008000 {
> > @@ -514,6 +526,9 @@ usart2: serial@fc008000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart3: serial@fc00c000 {
> > @@ -532,6 +547,9 @@ usart3: serial@fc00c000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			usart4: serial@fc010000 {
> > @@ -550,6 +568,9 @@ usart4: serial@fc010000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 31>;
> >   				clock-names = "usart";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			ssc1: ssc@fc014000 {
> > @@ -568,6 +589,9 @@ ssc1: ssc@fc014000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
> >   				clock-names = "pclk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi1: spi@fc018000 {
> > @@ -588,6 +612,9 @@ spi1: spi@fc018000 {
> >   				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
> >   				clock-names = "spi_clk";
> >   				status = "disabled";
> > +				serial {
> > +					compatible = "atmel,at91rm9200-usart-serial";
> > +				};
> >   			};
> >   			spi2: spi@fc01c000 {
> > @@ -794,6 +821,9 @@ dbgu: serial@fc069000 {
> >   				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

  parent reply	other threads:[~2020-11-02  9:02 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 11:07 [PATCH] ARM: dts: at91: add serial MFD sub-node for usart Codrin Ciubotariu
2020-10-30 11:07 ` Codrin Ciubotariu
2020-10-30 13:38 ` Nicolas Ferre
2020-10-30 13:38   ` Nicolas Ferre
2020-10-30 14:24   ` Codrin.Ciubotariu
2020-10-30 14:24     ` Codrin.Ciubotariu
2020-11-02  9:07     ` Lee Jones
2020-11-02  9:07       ` Lee Jones
2020-11-02 12:41       ` Codrin.Ciubotariu
2020-11-02 12:41         ` Codrin.Ciubotariu
2020-11-02  9:01   ` Lee Jones [this message]
2020-11-02  9:01     ` Lee Jones
2020-11-02 12:11     ` Codrin.Ciubotariu
2020-11-02 12:11       ` Codrin.Ciubotariu
2020-11-02 12:29       ` Lee Jones
2020-11-02 12:29         ` Lee Jones
2020-11-02 12:55         ` Codrin.Ciubotariu
2020-11-02 12:55           ` Codrin.Ciubotariu
2020-11-02 16:56           ` Codrin.Ciubotariu
2020-11-02 16:56             ` Codrin.Ciubotariu
2020-11-03  8:56             ` Lee Jones
2020-11-03  8:56               ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201102090122.GF4127@dell \
    --to=lee.jones@linaro.org \
    --cc=alexandre.belloni@bootlin.com \
    --cc=codrin.ciubotariu@microchip.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ludovic.desroches@microchip.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=richard.genoud@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.