Message ID | 20210215204105.27830-1-zajec5@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/5] arm64: dts: broadcom: bcm4908: describe USB PHY | expand |
On 2/15/2021 12:41 PM, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@milecki.pl> > > BCM4908 SoCs have an integrated Ethernet controller. > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl> > --- > .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 20 +++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi > index 358958105337..2d2c23292508 100644 > --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi > +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi > @@ -112,6 +112,14 @@ soc { > #size-cells = <1>; > ranges = <0x00 0x00 0x80000000 0x281000>; > > + enet: ethernet@2000 { > + compatible = "brcm,bcm4908-enet"; > + reg = <0x2000 0x1000>; > + > + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "rx"; > + }; > + > usb_phy: usb-phy@c200 { > compatible = "brcm,bcm4908-usb-phy"; > reg = <0xc200 0x100>; > @@ -199,6 +207,18 @@ port@3 { > phy-mode = "internal"; > phy-handle = <&phy11>; > }; > + > + port@8 { > + reg = <8>; > + phy-mode = "internal"; > + ethernet = <&enet>; > + brcm,use-bcm-hdr; This looks redundant, because we have an "ethernet" phandle property here this will become the CPU port for DSA and so we would enable Broadcom tags on that port. Did you somehow need that for the switch driver to work? -- Florian
On 16.02.2021 03:50, Florian Fainelli wrote: > On 2/15/2021 12:41 PM, Rafał Miłecki wrote: >> From: Rafał Miłecki <rafal@milecki.pl> >> >> BCM4908 SoCs have an integrated Ethernet controller. >> >> Signed-off-by: Rafał Miłecki <rafal@milecki.pl> >> --- >> .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 20 +++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi >> index 358958105337..2d2c23292508 100644 >> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi >> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi >> @@ -112,6 +112,14 @@ soc { >> #size-cells = <1>; >> ranges = <0x00 0x00 0x80000000 0x281000>; >> >> + enet: ethernet@2000 { >> + compatible = "brcm,bcm4908-enet"; >> + reg = <0x2000 0x1000>; >> + >> + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-names = "rx"; >> + }; >> + >> usb_phy: usb-phy@c200 { >> compatible = "brcm,bcm4908-usb-phy"; >> reg = <0xc200 0x100>; >> @@ -199,6 +207,18 @@ port@3 { >> phy-mode = "internal"; >> phy-handle = <&phy11>; >> }; >> + >> + port@8 { >> + reg = <8>; >> + phy-mode = "internal"; >> + ethernet = <&enet>; >> + brcm,use-bcm-hdr; > > This looks redundant, because we have an "ethernet" phandle property > here this will become the CPU port for DSA and so we would enable > Broadcom tags on that port. Did you somehow need that for the switch > driver to work? I blindly added that property. I verified now that it's not needed. It seems bcm_sf2_imp_setup() handles setup properly.
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts index ee3ed612274c..bf0d534ace2e 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts @@ -26,6 +26,23 @@ wps { }; }; +&usb_phy { + brcm,ioc = <1>; + status = "okay"; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&xhci { + status = "okay"; +}; + &nandcs { nand-ecc-strength = <4>; nand-ecc-step-size = <512>; diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts index 6e4ad66ff536..bb06683d6acf 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts @@ -44,6 +44,23 @@ brightness { }; }; +&usb_phy { + brcm,ioc = <1>; + status = "okay"; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&xhci { + status = "okay"; +}; + &ports { port@0 { label = "lan2"; diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi index 9354077f74cd..358958105337 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi @@ -2,6 +2,8 @@ #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/phy/phy.h> +#include <dt-bindings/soc/bcm-pmb.h> /dts-v1/; @@ -110,24 +112,39 @@ soc { #size-cells = <1>; ranges = <0x00 0x00 0x80000000 0x281000>; - usb@c300 { + usb_phy: usb-phy@c200 { + compatible = "brcm,bcm4908-usb-phy"; + reg = <0xc200 0x100>; + reg-names = "crtl"; + power-domains = <&pmb BCM_PMB_HOST_USB>; + dr_mode = "host"; + brcm,has-xhci; + brcm,has-eohci; + #phy-cells = <1>; + status = "disabled"; + }; + + ehci: usb@c300 { compatible = "generic-ehci"; reg = <0xc300 0x100>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; + phys = <&usb_phy PHY_TYPE_USB2>; status = "disabled"; }; - usb@c400 { + ohci: usb@c400 { compatible = "generic-ohci"; reg = <0xc400 0x100>; interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + phys = <&usb_phy PHY_TYPE_USB2>; status = "disabled"; }; - usb@d000 { + xhci: usb@d000 { compatible = "generic-xhci"; reg = <0xd000 0x8c8>; interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; + phys = <&usb_phy PHY_TYPE_USB3>; status = "disabled"; }; @@ -222,7 +239,7 @@ procmon: syscon@280000 { #address-cells = <1>; #size-cells = <1>; - power-controller@2800c0 { + pmb: power-controller@2800c0 { compatible = "brcm,bcm4908-pmb"; reg = <0x2800c0 0x40>; #power-domain-cells = <1>;