Thread (1 message) 1 message, 1 author, 2020-12-08

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

From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2020-12-08 08:51:11
Also in: linux-devicetree, lkml

On Tue, Dec 08, 2020 at 08:44:51AM +0000, S.j. Wang wrote:
quoted
quoted
quoted
quoted
On Mon, Dec 07, 2020 at 02:21:40PM +0100, Krzysztof Kozlowski wrote:
quoted
On Mon, Dec 07, 2020 at 02:53:24PM +0800, Shengjiu Wang wrote:
quoted
Error log:
sysfs: cannot create duplicate filename
'/bus/platform/devices/30000000.bus'
quoted
quoted
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 <redacted>
---
 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.
quoted
quoted
quoted
I just noticed that my message was barely understandable... so let me
fix it:
quoted
quoted
quoted
The proper node name is "bus" so basically you introduce wrong
name to _fix_ other problem.  Introducing wrong names at least
requires a comment.
quoted
quoted
quoted
quoted
However the actual problem here is not in node names but in
addresses:
quoted
quoted
quoted
quoted
      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.
In the RM, it says AIPS-1 (s_b_1, via SPBA) Glob. Module Enable.
Range is (30000000 - 300FFFFF)
No, AIPS-1 is till 303F_FFFF.
SPBA is a sub-bus under AIPS1. The SAI2@30020000 -  ASRC@300c0000
Are the devices under SPBA bus.
Where did you find SPBA bus description in the Reference Manual?

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help