On 26/01/2023 14:41, Rob Herring wrote: > On Thu, Jan 26, 2023 at 4:48 AM Krzysztof Kozlowski > <krzysztof.kozlowski@xxxxxxxxxx> wrote: >> >> On 25/01/2023 22:13, Rob Herring wrote: >>> On Wed, Jan 25, 2023 at 06:59:43PM +0100, Krzysztof Kozlowski wrote: >>>> The Samsung Exynos SoC USB 3.0 DWC3 Controller is a simple wrapper of >>>> actual DWC3 Controller device node. It handles necessary Samsung >>>> Exynos-specific resources (regulators, clocks), but does not have its >>>> own MMIO address space. >>>> >>>> However neither simple-bus bindings nor dtc W=1 accept device nodes in >>>> soc@ node which do not have unit address. Therefore allow using >>>> the address space of child device (actual DWC3 Controller) as the >>>> wrapper's address. >>> >>> The correct fix is 'ranges' should have a value. Though the whole >>> wrapper thing when there are no registers I dislike... >> >> You mean something like this (diff against this patchset): >> ---------- >> diff --git a/arch/arm/boot/dts/exynos54xx.dtsi >> b/arch/arm/boot/dts/exynos54xx.dtsi >> index 08786fd9c6ea..75b6f9678672 100644 >> --- a/arch/arm/boot/dts/exynos54xx.dtsi >> +++ b/arch/arm/boot/dts/exynos54xx.dtsi >> @@ -142,16 +142,15 @@ hsi2c_7: i2c@12cd0000 { >> status = "disabled"; >> }; >> >> - usbdrd3_0: usb-wrapper@12000000 { >> + usbdrd3_0: usb-wrapper { > > Why did you drop the unit-address? Unit-address is valid with 'reg' or 'ranges'. I misunderstood your comment then. To which problem did you refer with "The correct fix is ranges ...."? To my understanding this only changes the unit address, so I won't have to change the node name usb->usb-wrapper. Except this, my patches having empty ranges are equivalent. > >> compatible = "samsung,exynos5250-dwusb3"; >> - reg = <0x12000000 0x10000>; >> #address-cells = <1>; >> #size-cells = <1>; >> - ranges; >> + ranges = <0x0 0x12000000 0x10000>; >> Best regards, Krzysztof