[PATCH 4/7] ARM: STi: DT: STiH410: Add usb2 picophy dt nodes

Arnd Bergmann arnd at arndb.de
Mon Dec 1 07:40:35 PST 2014


On Wednesday 19 November 2014 08:27:09 Peter Griffin wrote:
> +       soc {
> +               usb2_picophy1: phy at 1 {
> +                       compatible = "st,stih407-usb2-phy";
> +                       #phy-cells = <0>;
> +                       st,syscfg = <&syscfg_core 0xf8 0xf4>;
> +                       resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
> +                                <&picophyreset STIH407_PICOPHY0_RESET>;
> +                       reset-names = "global", "port";
> +               };
>  
> +               usb2_picophy2: phy at 2 {
> +                       compatible = "st,stih407-usb2-phy";
> +                       #phy-cells = <0>;
> +                       st,syscfg = <&syscfg_core 0xfc 0xf4>;
> +                       resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
> +                                <&picophyreset STIH407_PICOPHY1_RESET>;
> +                       reset-names = "global", "port";
> +               };
> +       };

In theory the unit-address (the @1 and @2 part of the name) is supposed to
match the 'reg' property value, but of course that doesn't work any
more with the changed binding. The same problem keeps coming up, so
I wonder if anyone has an idea how this is supposed to be handled properly.

Should we just make up unit-address numbers? I guess a more elaborate
variant would be to have a parent node with #address-cells = <1> and
no ranges, to make up a new address space with arbitrarily assigned
reg values, like

	phys {
		#address-cells = <1>; /* just counting the nodes */
		#size-cells = <0>;

               usb2_picophy1: phy at 0 {
                       compatible = "st,stih407-usb2-phy";
			reg = <0>;
                       #phy-cells = <0>;
                       st,syscfg = <&syscfg_core 0xf8 0xf4>;
               };

               usb2_picophy2: phy at 1 {
                       compatible = "st,stih407-usb2-phy";
			reg = <0>;
                       #phy-cells = <0>;
                       st,syscfg = <&syscfg_core 0xf8 0xf4>;
               };
	}

Should we try to do it like this, or is that overcomplicating
things?

	Arnd



More information about the linux-arm-kernel mailing list