[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <mlbutlxudl5i32zrqegxiefaa2sbkntriwdftn7hxo4khidtf2@oiljtmtktovu>
Date: Thu, 31 Jul 2025 23:22:06 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
To: Yijie Yang <yijie.yang@....qualcomm.com>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 4/4] arm64: dts: qcom: Add base HAMOA-IOT-EVK board
On Thu, Jul 31, 2025 at 04:45:33PM +0800, Yijie Yang wrote:
>
>
> On 2025-07-31 02:42, Dmitry Baryshkov wrote:
> > On Wed, Jul 30, 2025 at 02:28:25PM +0800, Yijie Yang wrote:
> > >
> > >
> > > On 2025-07-29 18:37, Dmitry Baryshkov wrote:
> > > > On Tue, Jul 29, 2025 at 09:32:00AM +0800, Yijie Yang wrote:
> > > > > The HAMOA-IOT-EVK is an evaluation platform for IoT products, composed of
> > > > > the Hamoa IoT SoM and a carrier board. Together, they form a complete
> > > > > embedded system capable of booting to UART.
> > > > >
> > > > > This change enables and overlays the following peripherals on the carrier
> > > > > board:
> > > > > - UART
> > > > > - On-board regulators
> > > > > - USB Type-C mux
> > > > > - Pinctrl
> > > > > - Embedded USB (EUSB) repeaters
> > > > > - NVMe
> > > > > - pmic-glink
> > > > > - USB DisplayPorts
> > > > >
> >
> >
> > > > > + vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
> > > >
> > > > Hmm, so there are regulators for the retimer, but they are not used.
> > > > Could you please point out, why?
> > >
> > > According to the schematic, there is a regulator and a retimer (PS8830).
> > > However, as mentioned above, the retimer is not connected to USB 0 and is
> > > therefore not used in the EVK. As a result, the regulator is left unused in
> > > this context.
> >
> > What is connected to the retimer then?
>
> All data lines are broken, except for some power lines.
Ok. please add a comment. If the retimer is connected to I2C bus, please
define it too.
>
> >
> > >
> > > >
> > > > > + compatible = "regulator-fixed";
> > > > > +
> >
> > [...]
> >
> > > > > +
> > > > > + usb_1_ss0_sbu_default: usb-1-ss0-sbu-state {
> > > > > + mode-pins {
> > > > > + pins = "gpio166";
> > > > > + function = "gpio";
> > > > > + bias-disable;
> > > > > + drive-strength = <2>;
> > > > > + output-high;
> > > >
> > > > What does this pin do? It's not recommended to set GPIO values through
> > > > pinctrl.
> > >
> > > It is used to switch data lines between USB Type-C orientation detection and
> > > DisplayPort AUX channels.
> >
> > I don't think I follow it here. Which data lines? Type-C orientation
> > detection uses CC1 / CC2, DP AUX use SBU lines.
>
> I made a mistake here — this pin switches between two data sources: one is
> DP AUX, and the other is a GPIO pair configured with the function
> usb0_sbrx/usb0_sbtx. Both data sources originate from the SoC and are routed
> to the USB0_SBU1 and USB0_SBU2 lines of the USB Type-C connector.
So, it's some USB4 stuff. Ideally it should be described via the
gpio-sbu-mux, but I don't think we can do that for now. I'd let Bjorn,
Konrad or Abel comment on this.
>
> >
> > > When this GPIO is high, USB0 operates in
> > > orientation detection mode.
> >
> > What does this mean?
>
> This means the switch will select the GPIO pair configured as
> usb0_sbrx/usb0_sbtx.
>
> >
> > >
> > > >
> > > > > + };
> > > > > +
> > > > > + oe-n-pins {
> > > > > + pins = "gpio168";
> > > > > + function = "gpio";
> > > > > + bias-disable;
> > > > > + drive-strength = <2>;
> > > > > + };
> > > > > +
> > > > > + sel-pins {
> > > > > + pins = "gpio167";
> > > > > + function = "gpio";
> > > > > + bias-disable;
> > > > > + drive-strength = <2>;
> > > > > + };
> > > > > + };
> > > > > +
> > > > > + wcn_bt_en: wcn-bt-en-state {
> > > > > + pins = "gpio116";
> > > > > + function = "gpio";
> > > > > + drive-strength = <2>;
> > > > > + bias-disable;
> > > > > + };
> > > > > +
> > > > > + wwan_sw_en: wwan-sw-en-state {
> > > > > + pins = "gpio221";
> > > > > + function = "gpio";
> > > > > + drive-strength = <4>;
> > > > > + bias-disable;
> > > > > + };
> > > > > +
> > > > > + wcn_sw_en: wcn-sw-en-state {
> > > > > + pins = "gpio214";
> > > > > + function = "gpio";
> > > > > + drive-strength = <2>;
> > > > > + bias-disable;
> > > > > + };
> > > > > +
> > > > > + wcn_usb_sw_n: wcn-usb-sw-n-state {
> > > >
> > > > What does this pin do? Using pinctrl to set GPIO values is not
> > > > recommended AFAIR.
> > >
> > > This pin functions similarly to usb-1-ss0-sbu-state; it controls the data
> > > switch between signals from the USB connector and WLAN data.
> >
> > Could you please explain it? Does it toggle USB2 signals(you've added it
> > to the USB2 PHY) being routed either to the USB connector or to the WiFi
> > card? Or do you mean something else?
>
> Yes, that's right. It routes signals between the USB connector and the M.2
> Wi-Fi card.
Ack. Please add a comment.
>
> >
> > > > > +&usb_2_hsphy {
> > > > > + phys = <&eusb5_repeater>;
> > > > > +
> > > > > + pinctrl-0 = <&wcn_usb_sw_n>;
> > > > > + pinctrl-names = "default";
> > > > > +};
> > > > > +
> > > > > +&usb_mp_hsphy0 {
> > > > > + phys = <&eusb6_repeater>;
> > > > > +};
> > > > > +
> > > > > +&usb_mp_hsphy1 {
> > > > > + phys = <&eusb3_repeater>;
> > > > > +};
> > > > >
> > > > > --
> > > > > 2.34.1
> > > > >
> > > >
> > >
> > > --
> > > Best Regards,
> > > Yijie
> > >
> >
>
> --
> Best Regards,
> Yijie
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists