Message ID | 3ca56ffa9e4aa73f3c3f36d0edad0827ee11d953.1642768837.git.quic_schowdhu@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | Add Embedded USB Debugger (EUD) driver | expand |
On Fri 21 Jan 07:53 CST 2022, Souradeep Chowdhury wrote: > Add the Embedded USB Debugger(EUD) device tree node. The > node contains EUD base register region and EUD mode > manager register regions along with the interrupt entry. > Also add the typec connector node for EUD which is attached to > EUD node via port. EUD is also attached to DWC3 node via port. > Also add the role-switch property to dwc3 node. > > Signed-off-by: Souradeep Chowdhury <quic_schowdhu@quicinc.com> > --- > arch/arm64/boot/dts/qcom/sc7280.dtsi | 39 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 39 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi > index 937c2e0..daac831 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi > @@ -2583,6 +2583,14 @@ > phys = <&usb_2_hsphy>; > phy-names = "usb2-phy"; > maximum-speed = "high-speed"; > + usb-role-switch; > + ports { > + port@0 { > + usb2_role_switch: endpoint { > + remote-endpoint = <&eud_ep>; > + }; > + }; > + }; > }; > }; > > @@ -2624,6 +2632,37 @@ > interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; > }; > > + eud: eud@88e0000 { > + compatible = "qcom,sc7280-eud","qcom,eud"; > + reg = <0 0x88e0000 0 0x2000>, > + <0 0x88e2000 0 0x1000>; > + interrupt-parent = <&pdc>; > + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; I find "interrupts-extended = <&pdc 11 IRQ_TYPE_LEVEL_HIGH>;" cleaner than having to specify both parent and interrupts. > + ports { > + port@0 { > + eud_ep: endpoint { > + remote-endpoint = <&usb2_role_switch>; > + }; > + }; > + port@1 { > + eud_con: endpoint { > + remote-endpoint = <&con_eud>; > + }; > + }; > + }; > + }; > + > + eud_typec: connector { The connector should be a child of the Type-C controller, which I know differs between the various devices on this platform. So you should leave &eud_con without a remote-endpoint and then fill that in for each device, based on respective Type-C controller. But beyond that, I think this design looks good now! Regards, Bjorn > + compatible = "usb-c-connector"; > + ports { > + port@0 { > + con_eud: endpoint { > + remote-endpoint = <&eud_con>; > + }; > + }; > + }; > + }; > + > nsp_noc: interconnect@a0c0000 { > reg = <0 0x0a0c0000 0 0x10000>; > compatible = "qcom,sc7280-nsp-noc"; > -- > 2.7.4 >
On 1/26/2022 9:58 AM, Bjorn Andersson wrote: > On Fri 21 Jan 07:53 CST 2022, Souradeep Chowdhury wrote: > >> Add the Embedded USB Debugger(EUD) device tree node. The >> node contains EUD base register region and EUD mode >> manager register regions along with the interrupt entry. >> Also add the typec connector node for EUD which is attached to >> EUD node via port. EUD is also attached to DWC3 node via port. >> Also add the role-switch property to dwc3 node. >> >> Signed-off-by: Souradeep Chowdhury <quic_schowdhu@quicinc.com> >> --- >> arch/arm64/boot/dts/qcom/sc7280.dtsi | 39 ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 39 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi >> index 937c2e0..daac831 100644 >> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi >> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi >> @@ -2583,6 +2583,14 @@ >> phys = <&usb_2_hsphy>; >> phy-names = "usb2-phy"; >> maximum-speed = "high-speed"; >> + usb-role-switch; >> + ports { >> + port@0 { >> + usb2_role_switch: endpoint { >> + remote-endpoint = <&eud_ep>; >> + }; >> + }; >> + }; >> }; >> }; >> >> @@ -2624,6 +2632,37 @@ >> interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; >> }; >> >> + eud: eud@88e0000 { >> + compatible = "qcom,sc7280-eud","qcom,eud"; >> + reg = <0 0x88e0000 0 0x2000>, >> + <0 0x88e2000 0 0x1000>; >> + interrupt-parent = <&pdc>; >> + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; > I find "interrupts-extended = <&pdc 11 IRQ_TYPE_LEVEL_HIGH>;" cleaner > than having to specify both parent and interrupts. Ack > >> + ports { >> + port@0 { >> + eud_ep: endpoint { >> + remote-endpoint = <&usb2_role_switch>; >> + }; >> + }; >> + port@1 { >> + eud_con: endpoint { >> + remote-endpoint = <&con_eud>; >> + }; >> + }; >> + }; >> + }; >> + >> + eud_typec: connector { > The connector should be a child of the Type-C controller, which I know > differs between the various devices on this platform. So you should > leave &eud_con without a remote-endpoint and then fill that in for each > device, based on respective Type-C controller. > > > But beyond that, I think this design looks good now! Ack > > Regards, > Bjorn > >> + compatible = "usb-c-connector"; >> + ports { >> + port@0 { >> + con_eud: endpoint { >> + remote-endpoint = <&eud_con>; >> + }; >> + }; >> + }; >> + }; >> + >> nsp_noc: interconnect@a0c0000 { >> reg = <0 0x0a0c0000 0 0x10000>; >> compatible = "qcom,sc7280-nsp-noc"; >> -- >> 2.7.4 >>
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi index 937c2e0..daac831 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -2583,6 +2583,14 @@ phys = <&usb_2_hsphy>; phy-names = "usb2-phy"; maximum-speed = "high-speed"; + usb-role-switch; + ports { + port@0 { + usb2_role_switch: endpoint { + remote-endpoint = <&eud_ep>; + }; + }; + }; }; }; @@ -2624,6 +2632,37 @@ interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; }; + eud: eud@88e0000 { + compatible = "qcom,sc7280-eud","qcom,eud"; + reg = <0 0x88e0000 0 0x2000>, + <0 0x88e2000 0 0x1000>; + interrupt-parent = <&pdc>; + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; + ports { + port@0 { + eud_ep: endpoint { + remote-endpoint = <&usb2_role_switch>; + }; + }; + port@1 { + eud_con: endpoint { + remote-endpoint = <&con_eud>; + }; + }; + }; + }; + + eud_typec: connector { + compatible = "usb-c-connector"; + ports { + port@0 { + con_eud: endpoint { + remote-endpoint = <&eud_con>; + }; + }; + }; + }; + nsp_noc: interconnect@a0c0000 { reg = <0 0x0a0c0000 0 0x10000>; compatible = "qcom,sc7280-nsp-noc";
Add the Embedded USB Debugger(EUD) device tree node. The node contains EUD base register region and EUD mode manager register regions along with the interrupt entry. Also add the typec connector node for EUD which is attached to EUD node via port. EUD is also attached to DWC3 node via port. Also add the role-switch property to dwc3 node. Signed-off-by: Souradeep Chowdhury <quic_schowdhu@quicinc.com> --- arch/arm64/boot/dts/qcom/sc7280.dtsi | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)