Subject: Re: [PATCH] arm64: dts: imx8mn: Fix duplicate node name

From: Krzysztof Kozlowski <[email-masked]>
Date: Tue, 8 Dec 2020 09:34:30 +0100

On Tue, Dec 08, 2020 at 09:03:34AM +0100, Krzysztof Kozlowski wrote:
> On Tue, Dec 08, 2020 at 03:16:35AM +0000, S.j. Wang wrote:
> > Hi
> > 
> > > 
> > > On Mon, Dec 07, 2020 at 02:21:40PM +0100, Krzysztof Kozlowski wrote:
> > > > On Mon, Dec 07, 2020 at 02:53:24PM +0800, Shengjiu Wang wrote:
> > > > > Error log:
> > > > > sysfs: cannot create duplicate filename
> > > '/bus/platform/devices/30000000.bus'
> > > > >
> > > > > The spba bus name is duplicate with aips bus name.
> > > > > Refine spba bus name to fix this issue.
> > > > >
> > > > > Fixes: 970406eaef3a ("arm64: dts: imx8mn: Enable Asynchronous Sample
> > > > > Rate Converter")
> > > > > Signed-off-by: Shengjiu Wang <[email-masked]>
> > > > > ---
> > > > >  arch/arm64/boot/dts/freescale/imx8mn.dtsi | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > > > > b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > > > > index fd669c0f3fe5..30762eb4f0a7 100644
> > > > > --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > > > > @@ -246,7 +246,7 @@ aips1: bus@30000000 {
> > > > >                     #size-cells = <1>;
> > > > >                     ranges;
> > > > >
> > > > > -                   spba: bus@30000000 {
> > > > > +                   spba: spba-bus@30000000 {
> > > >
> > > > The proper node name is "bus" so basically you introduce wrong name to
> > > > other problem.  Introducing wrong names at least requires a comment.
> > > 
> > > I just noticed that my message was barely understandable... so let me fix it:
> > > 
> > > The proper node name is "bus" so basically you introduce wrong name to
> > > _fix_ other problem.  Introducing wrong names at least requires a comment.
> > > 
> > > > However the actual problem here is not in node names but in addresses:
> > > >
> > > >       aips1: bus@30000000 {
> > > >               spba: bus@30000000 {
> > > >
> > > > You have to devices with the same unit address. How do you share the
> > > > address space?
> > > >
> > > > I think this should be rather fixed.
> > > 
> > > And again, hungry keyboard ate a letter, so:
> > > 
> > > You have _two_ devices with the same unit address. How do you share the
> > > address space?
> > > I think this should be rather fixed.
> > > 
> > 
> > spba is the first block of aips1 space, so it has same start address as
> > aips1.
> 
> The reference manual describes it "Reserved for SDMA2 internal memory",
> so indeed it is first address but does it have to be mapped?
> Anyway, why don't you use ranges to remove the conflict?

The IO address space remapping could be a solution but there is another
problem - the hardware representation in DT does not match what
reference manual is saying.

The AIPS bus @30000000 has several IPs:
 - SAI2@30020000
 - ...
 - GPIO1@30200000

However in DTS you will find additional SPBA bus for 30000000 -
300c0000. It's not really the SDMA, as SDMA is at different address. It
is rather an address space which SDMA should map... but it is not a bus
with children. Adding spba-bus@30000000 with its children does not look
like correct representation of HW in DTS.

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel