All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Halaney <ahalaney@redhat.com>
To: Krishna Kurapati PSSNV <quic_kriskura@quicinc.com>
Cc: Johan Hovold <johan+linaro@kernel.org>,
	Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	quic_pkondeti@quicinc.com, quic_ppratap@quicinc.com,
	quic_wcheng@quicinc.com, quic_jackp@quicinc.com,
	quic_harshq@quicinc.com, quic_shazhuss@quicinc.com
Subject: Re: [PATCH v6 6/8] arm64: dts: qcom: sc8280xp: Add multiport controller node for SC8280
Date: Tue, 25 Apr 2023 15:33:28 -0500	[thread overview]
Message-ID: <20230425203328.hrz5dw7f2vsbbbgk@halaney-x13s> (raw)
In-Reply-To: <28a58bf9-5ad8-4084-11d6-cd1b0d3a2998@quicinc.com>

On Sat, Apr 22, 2023 at 09:38:44PM +0530, Krishna Kurapati PSSNV wrote:
> 
> 
> On 4/16/2023 12:34 AM, Krishna Kurapati PSSNV wrote:
> > 
> > 
> > On 4/14/2023 9:15 PM, Andrew Halaney wrote:
> > > On Wed, Apr 05, 2023 at 06:27:57PM +0530, Krishna Kurapati wrote:
> > > > Add USB and DWC3 node for tertiary port of SC8280 along with multiport
> > > > IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride
> > > > platforms.
> > > > 
> > > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
> > > > ---
> > > > Link to v5: https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/
> > > > 
> > > >   arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++
> > > >   1 file changed, 58 insertions(+)
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> > > > b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> > > > index 42bfa9fa5b96..7b81f2b0449d 100644
> > > > --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> > > > +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> > > > @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint {
> > > >               };
> > > >           };
> > > > +        usb_2: usb@a4f8800 {
> > > > +            compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3";
> > > > +            reg = <0 0x0a4f8800 0 0x400>;
> > > > +            #address-cells = <2>;
> > > > +            #size-cells = <2>;
> > > > +            ranges;
> > > > +
> > > > +            clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
> > > > +                 <&gcc GCC_USB30_MP_MASTER_CLK>,
> > > > +                 <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
> > > > +                 <&gcc GCC_USB30_MP_SLEEP_CLK>,
> > > > +                 <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
> > > > +                 <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>,
> > > > +                 <&gcc GCC_AGGRE_USB_NOC_NORTH_AXI_CLK>,
> > > > +                 <&gcc GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK>,
> > > > +                 <&gcc GCC_SYS_NOC_USB_AXI_CLK>;
> > > > +            clock-names = "cfg_noc", "core", "iface", "sleep",
> > > > "mock_utmi",
> > > > +                      "noc_aggr", "noc_aggr_north",
> > > > "noc_aggr_south", "noc_sys";
> > > > +
> > > > +            assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
> > > > +                      <&gcc GCC_USB30_MP_MASTER_CLK>;
> > > > +            assigned-clock-rates = <19200000>, <200000000>;
> > > > +
> > > > +            interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>,
> > > > +                        <&pdc 126 IRQ_TYPE_EDGE_RISING>,
> > > > +                        <&pdc 16 IRQ_TYPE_LEVEL_HIGH>;
> > > > +
> > > > +            interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq",
> > > > +                        "ss_phy_irq";
> > > > +
> > > 
> > > This is breaking the current schema (with the full series applied),
> > > I am not sure if a pwr_event IRQ exists or but it maybe necessary to
> > > modify qcom,dwc3.yaml in order to explain hardware if it doesn't exist:
> > > 
> > > (dtschema) ahalaney@halaney-x13s ~/git/linux-next
> > > (git)-[718f2024524f] % make CHECK_DTBS=y
> > > DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb                                                                                  
> > > :(
> > >    LINT    Documentation/devicetree/bindings
> > >    CHKDT   Documentation/devicetree/bindings/processed-schema.json
> > >    SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> > >    DTC_CHK arch/arm64/boot/dts/qcom/sa8540p-ride.dtb
> > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:0: 'pwr_event' was expected
> > >     From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
> > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:1: 'dp_hs_phy_irq' was expected
> > >     From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
> > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:2: 'dm_hs_phy_irq' was expected
> > >     From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
> > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names: ['dp_hs_phy_irq', 'dm_hs_phy_irq', 'ss_phy_irq'] is too short
> > >     From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
> > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupts-extended: [[99, 127, 1], [99, 126, 1], [99, 16, 4]] is too short
> > >     From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
> > > make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml
> > > qcom/sa8540p-ride.dtb  22.61s user 0.54s system 99% cpu 23.172 total
> > > (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] %
> > > 
> > > Thanks,
> > > Andrew
> > > 
> > 
> > Hi Andrew,
> > 
> >   Thanks for pointing it out. Let me check and get back on the
> > pwr_event_irq.
> > 
> > Probably I might have missed it 😅. If so, will make sure to add it in
> > next version.
> > 
> > Regards,
> > Krishna,
> 
> 
> Hi Andrew, Johan,
> 
>   I was looking at the pwr_event_irq interrupts for Multiport controller and
> see that there are two of them as per HW specs. All targets till date have
> only 1 pwr_event_irq required.
> 
> The reason I thought I missed pwr_event_irq in my patches is because in
> downstream this is a required IRQ for all targets, so I was under assumption
> that we need it for upstream targets as well. But upstream qcom driver
> doesn't have support for this IRQ yet. And this has been made a required one
> only for SC8280 [1]/[2].
> 
> Probably we can proceed in one of the following ways:
> 1. Remove pwr_event_irq in both bindings and DT as driver support is not
> present currently.
> 2. Update the bindings for SC8280 to include an optional secondary
> pwr_event_irq for multiport controller.
> 
> I would prefer option-1 as removing them would be better because they are
> not being used. Please let me know your thoughts on this.
> 
> [1]:
> https://lore.kernel.org/all/20220713131340.29401-2-johan+linaro@kernel.org/
> [2]:
> https://lore.kernel.org/all/20220713131340.29401-6-johan+linaro@kernel.org/
> 

Personally, I prefer option 2 since the IRQ does exist technically
(although it isn't currently used), I like it being described... it
makes the dt-binding a more complete description of the hardware.

I am unsure of the rules wrt dt-bindings and usage in drivers, but I
always like to view it as "this is a description of the hardware", and
the driver bit is just nice to have to ensure that whoever is adding the
binding is actually describing things sufficiently.

You could probably add a new compatible string for the multiport
sc8280xp IP as well, and make the second IRQ non-optional in dt-binding
evaluation? That seems more inline with reality, the regular IP has 1
pwr_event_irq, multiport on this platform has 2, they behave slightly
differently and thus they deserve their own string to match on despite
being on the same platform.

Please note, I'm just a contributor -- I would not be surprised to find
out that my view is not aligned with what maintainers here think, but
that's my interpretation of things!

Hope that helps,
Andrew


  reply	other threads:[~2023-04-25 20:34 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-05 12:57 [PATCH v6 0/8] Add multiport support for DWC3 controllers Krishna Kurapati
2023-04-05 12:57 ` [PATCH v6 1/8] dt-bindings: usb: Add bindings for multiport properties on DWC3 controller Krishna Kurapati
2023-04-05 14:01   ` Krzysztof Kozlowski
2023-04-05 14:15     ` Krishna Kurapati PSSNV
2023-04-05 14:18       ` Krzysztof Kozlowski
2023-04-05 20:17       ` Rob Herring
2023-04-06 14:07         ` Krishna Kurapati PSSNV
2023-04-05 16:48   ` Rob Herring
2023-04-05 12:57 ` [PATCH v6 2/8] usb: dwc3: core: Access XHCI address space temporarily to read port info Krishna Kurapati
2023-04-05 23:14   ` kernel test robot
2023-04-08  1:38   ` Thinh Nguyen
2023-04-05 12:57 ` [PATCH v6 3/8] usb: dwc3: core: Skip setting event buffers for host only controllers Krishna Kurapati
2023-04-05 12:57 ` [PATCH v6 4/8] usb: dwc3: core: Refactor PHY logic to support Multiport Controller Krishna Kurapati
2023-04-05 12:57 ` [PATCH v6 5/8] usb: dwc3: qcom: Add multiport controller support for qcom wrapper Krishna Kurapati
2023-04-05 12:57 ` [PATCH v6 6/8] arm64: dts: qcom: sc8280xp: Add multiport controller node for SC8280 Krishna Kurapati
2023-04-14 15:45   ` Andrew Halaney
2023-04-15 19:04     ` Krishna Kurapati PSSNV
2023-04-22 16:08       ` Krishna Kurapati PSSNV
2023-04-25 20:33         ` Andrew Halaney [this message]
2023-05-05  7:55           ` Johan Hovold
2023-04-05 12:57 ` [PATCH v6 7/8] arm64: dts: qcom: sa8295p: Enable tertiary controller and its 4 USB ports Krishna Kurapati
2023-04-05 12:57 ` [PATCH v6 8/8] arm64: dts: qcom: sa8540-ride: Enable first port of tertiary usb controller Krishna Kurapati
2023-04-14 15:51   ` Andrew Halaney
2023-04-15 19:09     ` Krishna Kurapati PSSNV
2023-04-08  1:42 ` [PATCH v6 0/8] Add multiport support for DWC3 controllers Thinh Nguyen
2023-04-08 11:36   ` Krzysztof Kozlowski
2023-04-08 23:09     ` Thinh Nguyen
2023-04-10 15:24       ` Krzysztof Kozlowski
2023-04-13 18:54 ` Adrien Thierry
2023-04-14  4:41   ` Krishna Kurapati PSSNV

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230425203328.hrz5dw7f2vsbbbgk@halaney-x13s \
    --to=ahalaney@redhat.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan+linaro@kernel.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=quic_harshq@quicinc.com \
    --cc=quic_jackp@quicinc.com \
    --cc=quic_kriskura@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=quic_ppratap@quicinc.com \
    --cc=quic_shazhuss@quicinc.com \
    --cc=quic_wcheng@quicinc.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.