* [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals
@ 2025-08-26 18:20 Wasim Nazir
2025-08-26 18:21 ` [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible Wasim Nazir
` (5 more replies)
0 siblings, 6 replies; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:20 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Monish Chunara, Wasim Nazir, Viken Dadhaniya,
Sushrut Shree Trivedi, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Vishal Kumar Pal,
Mohammad Rafi Shaik, Konrad Dybcio
This series extend support for additional peripherals on the Qualcomm
Lemans EVK board to enhance overall hardware functionality.
It includes:
- New peripherals like:
- GPI (Generic Peripheral Interface) DMA controllers and QUPv3 controllers
for peripheral communication.
- PCIe HW with required regulators and PHYs.
- I2C based devices like GPIO I/O expander and EEPROM.
- USB0 controller in device mode.
- Remoteproc subsystems for supported DSPs.
- Qca8081 2.5G Ethernet PHY.
- Iris video decoder.
- SD card support on SDHC v5.
- Audio change [1] to support capture and playback on I2S.
Dependency:
- Revert commit b5323835f050 ("OPP: Reorganize _opp_table_find_key()") to
avoid regression introduced in linux-next (20250825).
- This series depends on the removal of partial changes from patch [2],
which are now part of the above commit and are causing boot failures as
described in [3].
- The ethernet PHY QCA8081 depends on CONFIG_QCA808X_PHY, without
which ethernet will not work.
[1] https://lore.kernel.org/linux-arm-msm/20250822131902.1848802-1-mohammad.rafi.shaik@oss.qualcomm.com/
[2] https://lore.kernel.org/all/20250820-opp_pcie-v4-2-273b8944eed0@oss.qualcomm.com/
[3] https://lore.kernel.org/all/aKyS0RGZX4bxbjDj@hu-wasimn-hyd.qualcomm.com/
---
Mohammad Rafi Shaik (2):
arm64: dts: qcom: lemans: Add gpr node
arm64: dts: qcom: lemans-evk: Add sound card
Monish Chunara (2):
dt-bindings: mmc: sdhci-msm: Document the Lemans compatible
arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
Wasim Nazir (1):
arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
.../devicetree/bindings/mmc/sdhci-msm.yaml | 1 +
arch/arm64/boot/dts/qcom/lemans-evk.dts | 439 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/lemans.dtsi | 124 ++++++
3 files changed, 564 insertions(+)
---
base-commit: d0630b758e593506126e8eda6c3d56097d1847c5
change-id: 20250814-lemans-evk-bu-ec015ce4080e
Best regards,
--
Wasim Nazir <wasim.nazir@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
@ 2025-08-26 18:21 ` Wasim Nazir
2025-08-27 1:19 ` Dmitry Baryshkov
2025-08-26 18:21 ` [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration Wasim Nazir
` (4 subsequent siblings)
5 siblings, 1 reply; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:21 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Monish Chunara, Wasim Nazir
From: Monish Chunara <quic_mchunara@quicinc.com>
Add the MSM SDHCI compatible name to support both eMMC and SD card for
Lemans, which uses 'sa8775p' as the fallback SoC. Ensure the new
compatible string matches existing Lemans-compatible formats without
introducing a new naming convention.
The SDHCI controller on Lemans is based on MSM SDHCI v5 IP. Hence,
document the compatible with "qcom,sdhci-msm-v5" as the fallback.
Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
Documentation/devicetree/bindings/mmc/sdhci-msm.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
index 22d1f50c3fd1..fac5d21abb94 100644
--- a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
+++ b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
@@ -49,6 +49,7 @@ properties:
- qcom,qcs8300-sdhci
- qcom,qdu1000-sdhci
- qcom,sar2130p-sdhci
+ - qcom,sa8775p-sdhci
- qcom,sc7180-sdhci
- qcom,sc7280-sdhci
- qcom,sc8280xp-sdhci
--
2.51.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
2025-08-26 18:21 ` [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible Wasim Nazir
@ 2025-08-26 18:21 ` Wasim Nazir
2025-08-27 1:20 ` Dmitry Baryshkov
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
` (3 subsequent siblings)
5 siblings, 1 reply; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:21 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Monish Chunara, Wasim Nazir
From: Monish Chunara <quic_mchunara@quicinc.com>
Introduce the SDHC v5 controller node for the Lemans platform.
This controller supports either eMMC or SD-card, but only one
can be active at a time. SD-card is the preferred configuration
on Lemans targets, so describe this controller.
Define the SDC interface pins including clk, cmd, and data lines
to enable proper communication with the SDHC controller.
Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 99a566b42ef2..a5a3cdba47f3 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
};
};
+ sdhc: mmc@87c4000 {
+ compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
+ reg = <0x0 0x087c4000 0x0 0x1000>;
+
+ interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hc_irq", "pwr_irq";
+
+ clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+ <&gcc GCC_SDCC1_APPS_CLK>;
+ clock-names = "iface", "core";
+
+ interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
+ <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
+ interconnect-names = "sdhc-ddr", "cpu-sdhc";
+
+ iommus = <&apps_smmu 0x0 0x0>;
+ dma-coherent;
+
+ resets = <&gcc GCC_SDCC1_BCR>;
+
+ no-sdio;
+ no-mmc;
+ bus-width = <4>;
+ qcom,dll-config = <0x0007642c>;
+ qcom,ddr-config = <0x80040868>;
+
+ status = "disabled";
+ };
+
usb_0_hsphy: phy@88e4000 {
compatible = "qcom,sa8775p-usb-hs-phy",
"qcom,usb-snps-hs-5nm-phy";
@@ -5643,6 +5673,46 @@ qup_uart21_rx: qup-uart21-rx-pins {
function = "qup3_se0";
};
};
+
+ sdc_default: sdc-default-state {
+ clk-pins {
+ pins = "sdc1_clk";
+ bias-disable;
+ drive-strength = <16>;
+ };
+
+ cmd-pins {
+ pins = "sdc1_cmd";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+
+ data-pins {
+ pins = "sdc1_data";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+ };
+
+ sdc_sleep: sdc-sleep-state {
+ clk-pins {
+ pins = "sdc1_clk";
+ drive-strength = <2>;
+ bias-bus-hold;
+ };
+
+ cmd-pins {
+ pins = "sdc1_cmd";
+ drive-strength = <2>;
+ bias-bus-hold;
+ };
+
+ data-pins {
+ pins = "sdc1_data";
+ drive-strength = <2>;
+ bias-bus-hold;
+ };
+ };
};
sram: sram@146d8000 {
--
2.51.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
2025-08-26 18:21 ` [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible Wasim Nazir
2025-08-26 18:21 ` [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration Wasim Nazir
@ 2025-08-26 18:21 ` Wasim Nazir
2025-08-27 1:35 ` Dmitry Baryshkov
` (2 more replies)
2025-08-26 18:21 ` [PATCH 4/5] arm64: dts: qcom: lemans: Add gpr node Wasim Nazir
` (2 subsequent siblings)
5 siblings, 3 replies; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:21 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Viken Dadhaniya, Sushrut Shree Trivedi,
Nirmesh Kumar Singh, Krishna Kurapati, Mohd Ayaan Anwar,
Dikshita Agarwal, Monish Chunara, Vishal Kumar Pal, Wasim Nazir
Enhance the Qualcomm Lemans EVK board file to support essential
peripherals and improve overall hardware capabilities, as
outlined below:
- Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
controllers to facilitate DMA and peripheral communication.
- Add support for PCIe-0/1, including required regulators and PHYs,
to enable high-speed external device connectivity.
- Integrate the TCA9534 I/O expander via I2C to provide 8 additional
GPIO lines for extended I/O functionality.
- Enable the USB0 controller in device mode to support USB peripheral
operations.
- Activate remoteproc subsystems for supported DSPs such as Audio DSP,
Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
firmware.
- Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
and other consumers.
- Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
Ethernet MAC address via nvmem for network configuration.
It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
- Add support for the Iris video decoder, including the required
firmware, to enable video decoding capabilities.
- Enable SD-card slot on SDHC.
Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
1 file changed, 387 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 9e415012140b..642b66c4ad1e 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -16,7 +16,10 @@ / {
compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
aliases {
+ ethernet0 = ðernet0;
+ mmc1 = &sdhc;
serial0 = &uart10;
+ serial1 = &uart17;
};
chosen {
@@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
};
};
};
+
+ vmmc_sdc: regulator-vmmc-sdc {
+ compatible = "regulator-fixed";
+ regulator-name = "vmmc_sdc";
+
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ vreg_sdc: regulator-vreg-sdc {
+ compatible = "regulator-gpio";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2950000>;
+ regulator-name = "vreg_sdc";
+ regulator-type = "voltage";
+
+ startup-delay-us = <100>;
+
+ gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
+
+ states = <1800000 0x1
+ 2950000 0x0>;
+ };
};
&apps_rsc {
@@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
};
};
+ðernet0 {
+ phy-handle = <&hsgmii_phy0>;
+ phy-mode = "2500base-x";
+
+ pinctrl-0 = <ðernet0_default>;
+ pinctrl-names = "default";
+
+ snps,mtl-rx-config = <&mtl_rx_setup>;
+ snps,mtl-tx-config = <&mtl_tx_setup>;
+ snps,ps-speed = <1000>;
+
+ nvmem-cells = <&mac_addr0>;
+ nvmem-cell-names = "mac-address";
+
+ status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hsgmii_phy0: ethernet-phy@1c {
+ compatible = "ethernet-phy-id004d.d101";
+ reg = <0x1c>;
+ reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <11000>;
+ reset-deassert-us = <70000>;
+ };
+ };
+
+ mtl_rx_setup: rx-queues-config {
+ snps,rx-queues-to-use = <4>;
+ snps,rx-sched-sp;
+
+ queue0 {
+ snps,dcb-algorithm;
+ snps,map-to-dma-channel = <0x0>;
+ snps,route-up;
+ snps,priority = <0x1>;
+ };
+
+ queue1 {
+ snps,dcb-algorithm;
+ snps,map-to-dma-channel = <0x1>;
+ snps,route-ptp;
+ };
+
+ queue2 {
+ snps,avb-algorithm;
+ snps,map-to-dma-channel = <0x2>;
+ snps,route-avcp;
+ };
+
+ queue3 {
+ snps,avb-algorithm;
+ snps,map-to-dma-channel = <0x3>;
+ snps,priority = <0xc>;
+ };
+ };
+
+ mtl_tx_setup: tx-queues-config {
+ snps,tx-queues-to-use = <4>;
+
+ queue0 {
+ snps,dcb-algorithm;
+ };
+
+ queue1 {
+ snps,dcb-algorithm;
+ };
+
+ queue2 {
+ snps,avb-algorithm;
+ snps,send_slope = <0x1000>;
+ snps,idle_slope = <0x1000>;
+ snps,high_credit = <0x3e800>;
+ snps,low_credit = <0xffc18000>;
+ };
+
+ queue3 {
+ snps,avb-algorithm;
+ snps,send_slope = <0x1000>;
+ snps,idle_slope = <0x1000>;
+ snps,high_credit = <0x3e800>;
+ snps,low_credit = <0xffc18000>;
+ };
+ };
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpi_dma2 {
+ status = "okay";
+};
+
+&i2c18 {
+ status = "okay";
+
+ expander0: pca953x@38 {
+ compatible = "ti,tca9538";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0x38>;
+ };
+
+ expander1: pca953x@39 {
+ compatible = "ti,tca9538";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0x39>;
+ };
+
+ expander2: pca953x@3a {
+ compatible = "ti,tca9538";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0x3a>;
+ };
+
+ expander3: pca953x@3b {
+ compatible = "ti,tca9538";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0x3b>;
+ };
+
+ eeprom@50 {
+ compatible = "atmel,24c256";
+ reg = <0x50>;
+ pagesize = <64>;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ mac_addr0: mac-addr@0 {
+ reg = <0x0 0x6>;
+ };
+ };
+ };
+};
+
+&iris {
+ firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
+
+ status = "okay";
+};
+
&mdss0 {
status = "okay";
};
@@ -323,14 +505,196 @@ &mdss0_dp1_phy {
status = "okay";
};
+&pcie0 {
+ perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie0_default_state>;
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l1c>;
+
+ status = "okay";
+};
+
+&pcie1 {
+ perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie1_default_state>;
+
+ status = "okay";
+};
+
+&pcie1_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l1c>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
&qupv3_id_1 {
status = "okay";
};
+&qupv3_id_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sa8775p/adsp.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp0 {
+ firmware-name = "qcom/sa8775p/cdsp0.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp1 {
+ firmware-name = "qcom/sa8775p/cdsp1.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_gpdsp0 {
+ firmware-name = "qcom/sa8775p/gpdsp0.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_gpdsp1 {
+ firmware-name = "qcom/sa8775p/gpdsp1.mbn";
+
+ status = "okay";
+};
+
+&sdhc {
+ vmmc-supply = <&vmmc_sdc>;
+ vqmmc-supply = <&vreg_sdc>;
+
+ pinctrl-0 = <&sdc_default>, <&sd_cd>;
+ pinctrl-1 = <&sdc_sleep>, <&sd_cd>;
+ pinctrl-names = "default", "sleep";
+
+ power-domains = <&rpmhpd SA8775P_CX>;
+ operating-points-v2 = <&sdhc_opp_table>;
+
+ cd-gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
+
+ status = "okay";
+
+ sdhc_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-100000000 {
+ opp-hz = /bits/ 64 <100000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ opp-peak-kBps = <1800000 400000>;
+ opp-avg-kBps = <100000 0>;
+ };
+
+ opp-384000000 {
+ opp-hz = /bits/ 64 <384000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <5400000 1600000>;
+ opp-avg-kBps = <390000 0>;
+ };
+ };
+};
+
+&serdes0 {
+ phy-supply = <&vreg_l5a>;
+
+ status = "okay";
+};
+
&sleep_clk {
clock-frequency = <32768>;
};
+&tlmm {
+ ethernet0_default: ethernet0-default-state {
+ ethernet0_mdc: ethernet0-mdc-pins {
+ pins = "gpio8";
+ function = "emac0_mdc";
+ drive-strength = <16>;
+ bias-pull-up;
+ };
+
+ ethernet0_mdio: ethernet0-mdio-pins {
+ pins = "gpio9";
+ function = "emac0_mdio";
+ drive-strength = <16>;
+ bias-pull-up;
+ };
+ };
+
+ pcie0_default_state: pcie0-default-state {
+ clkreq-pins {
+ pins = "gpio1";
+ function = "pcie0_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio2";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-pins {
+ pins = "gpio0";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie1_default_state: pcie1-default-state {
+ clkreq-pins {
+ pins = "gpio3";
+ function = "pcie1_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio4";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-pins {
+ pins = "gpio5";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ sd_cd: sd-cd-state {
+ pins = "gpio36";
+ function = "gpio";
+ bias-pull-up;
+ };
+};
+
&uart10 {
compatible = "qcom,geni-debug-uart";
pinctrl-0 = <&qup_uart10_default>;
@@ -356,6 +720,29 @@ &ufs_mem_phy {
status = "okay";
};
+&usb_0 {
+ status = "okay";
+};
+
+&usb_0_dwc3 {
+ dr_mode = "peripheral";
+};
+
+&usb_0_hsphy {
+ vdda-pll-supply = <&vreg_l7a>;
+ vdda18-supply = <&vreg_l6c>;
+ vdda33-supply = <&vreg_l9a>;
+
+ status = "okay";
+};
+
+&usb_0_qmpphy {
+ vdda-phy-supply = <&vreg_l1c>;
+ vdda-pll-supply = <&vreg_l7a>;
+
+ status = "okay";
+};
+
&xo_board_clk {
clock-frequency = <38400000>;
};
--
2.51.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 4/5] arm64: dts: qcom: lemans: Add gpr node
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
` (2 preceding siblings ...)
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
@ 2025-08-26 18:21 ` Wasim Nazir
2025-08-26 18:21 ` [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card Wasim Nazir
2025-08-26 23:19 ` [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Rob Herring (Arm)
5 siblings, 0 replies; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:21 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Mohammad Rafi Shaik, Konrad Dybcio, Wasim Nazir
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add GPR(Generic Pack router) node along with
APM(Audio Process Manager) and PRM(Proxy resource
Manager) audio services.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans.dtsi | 40 ++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index a5a3cdba47f3..28f0976ab526 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -18,6 +18,7 @@
#include <dt-bindings/mailbox/qcom-ipcc.h>
#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,gpr.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
/ {
@@ -6679,6 +6680,45 @@ compute-cb@5 {
dma-coherent;
};
};
+
+ gpr {
+ compatible = "qcom,gpr";
+ qcom,glink-channels = "adsp_apps";
+ qcom,domain = <GPR_DOMAIN_ID_ADSP>;
+ qcom,intents = <512 20>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ q6apm: service@1 {
+ compatible = "qcom,q6apm";
+ reg = <GPR_APM_MODULE_IID>;
+ #sound-dai-cells = <0>;
+ qcom,protection-domain = "avs/audio",
+ "msm/adsp/audio_pd";
+
+ q6apmbedai: bedais {
+ compatible = "qcom,q6apm-lpass-dais";
+ #sound-dai-cells = <1>;
+ };
+
+ q6apmdai: dais {
+ compatible = "qcom,q6apm-dais";
+ iommus = <&apps_smmu 0x3001 0x0>;
+ };
+ };
+
+ q6prm: service@2 {
+ compatible = "qcom,q6prm";
+ reg = <GPR_PRM_MODULE_IID>;
+ qcom,protection-domain = "avs/audio",
+ "msm/adsp/audio_pd";
+
+ q6prmcc: clock-controller {
+ compatible = "qcom,q6prm-lpass-clocks";
+ #clock-cells = <2>;
+ };
+ };
+ };
};
};
};
--
2.51.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
` (3 preceding siblings ...)
2025-08-26 18:21 ` [PATCH 4/5] arm64: dts: qcom: lemans: Add gpr node Wasim Nazir
@ 2025-08-26 18:21 ` Wasim Nazir
2025-08-27 23:07 ` Bjorn Andersson
2025-08-26 23:19 ` [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Rob Herring (Arm)
5 siblings, 1 reply; 33+ messages in thread
From: Wasim Nazir @ 2025-08-26 18:21 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Mohammad Rafi Shaik, Wasim Nazir
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add the sound card node with tested playback over max98357a
I2S speakers amplifier and I2S mic.
Introduce HS (High-Speed) MI2S pin control support.
The I2S max98357a speaker amplifier is connected via HS0 and I2S
microphones utilize the HS2 interface.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
2 files changed, 66 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 642b66c4ad1e..4adf0f956580 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
#include "lemans.dtsi"
#include "lemans-pmics.dtsi"
@@ -26,6 +27,17 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ dmic: audio-codec-0 {
+ compatible = "dmic-codec";
+ #sound-dai-cells = <0>;
+ num-channels = <1>;
+ };
+
+ max98357a: audio-codec-1 {
+ compatible = "maxim,max98357a";
+ #sound-dai-cells = <0>;
+ };
+
edp0-connector {
compatible = "dp-connector";
label = "EDP0";
@@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
states = <1800000 0x1
2950000 0x0>;
};
+
+ sound {
+ compatible = "qcom,qcs9100-sndcard";
+ model = "LEMANS-EVK";
+
+ pinctrl-0 = <&hs0_mi2s_active>, <&hs2_mi2s_active>;
+ pinctrl-names = "default";
+
+ hs0-mi2s-playback-dai-link {
+ link-name = "HS0 MI2S Playback";
+
+ codec {
+ sound-dai = <&max98357a>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ hs2-mi2s-capture-dai-link {
+ link-name = "HS2 MI2S Capture";
+
+ codec {
+ sound-dai = <&dmic>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai TERTIARY_MI2S_TX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
};
&apps_rsc {
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 28f0976ab526..c8e6246b6062 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
bias-disable;
};
+ hs0_mi2s_active: hs0-mi2s-active-state {
+ pins = "gpio114", "gpio115", "gpio116", "gpio117";
+ function = "hs0_mi2s";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ hs2_mi2s_active: hs2-mi2s-active-state {
+ pins = "gpio122", "gpio123", "gpio124", "gpio125";
+ function = "hs2_mi2s";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
qup_i2c0_default: qup-i2c0-state {
pins = "gpio20", "gpio21";
function = "qup0_se0";
--
2.51.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
` (4 preceding siblings ...)
2025-08-26 18:21 ` [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card Wasim Nazir
@ 2025-08-26 23:19 ` Rob Herring (Arm)
5 siblings, 0 replies; 33+ messages in thread
From: Rob Herring (Arm) @ 2025-08-26 23:19 UTC (permalink / raw)
To: Wasim Nazir
Cc: linux-kernel, Ulf Hansson, Nirmesh Kumar Singh, Vishal Kumar Pal,
Bjorn Andersson, linux-mmc, Krzysztof Kozlowski, Richard Cochran,
Mohd Ayaan Anwar, Konrad Dybcio, Dikshita Agarwal,
Krishna Kurapati, devicetree, netdev, Viken Dadhaniya,
Konrad Dybcio, Sushrut Shree Trivedi, Conor Dooley,
Monish Chunara, kernel, linux-arm-msm, Mohammad Rafi Shaik
On Tue, 26 Aug 2025 23:50:59 +0530, Wasim Nazir wrote:
> This series extend support for additional peripherals on the Qualcomm
> Lemans EVK board to enhance overall hardware functionality.
>
> It includes:
> - New peripherals like:
> - GPI (Generic Peripheral Interface) DMA controllers and QUPv3 controllers
> for peripheral communication.
> - PCIe HW with required regulators and PHYs.
> - I2C based devices like GPIO I/O expander and EEPROM.
> - USB0 controller in device mode.
> - Remoteproc subsystems for supported DSPs.
> - Qca8081 2.5G Ethernet PHY.
> - Iris video decoder.
> - SD card support on SDHC v5.
> - Audio change [1] to support capture and playback on I2S.
>
> Dependency:
> - Revert commit b5323835f050 ("OPP: Reorganize _opp_table_find_key()") to
> avoid regression introduced in linux-next (20250825).
> - This series depends on the removal of partial changes from patch [2],
> which are now part of the above commit and are causing boot failures as
> described in [3].
> - The ethernet PHY QCA8081 depends on CONFIG_QCA808X_PHY, without
> which ethernet will not work.
>
> [1] https://lore.kernel.org/linux-arm-msm/20250822131902.1848802-1-mohammad.rafi.shaik@oss.qualcomm.com/
> [2] https://lore.kernel.org/all/20250820-opp_pcie-v4-2-273b8944eed0@oss.qualcomm.com/
> [3] https://lore.kernel.org/all/aKyS0RGZX4bxbjDj@hu-wasimn-hyd.qualcomm.com/
>
> ---
> Mohammad Rafi Shaik (2):
> arm64: dts: qcom: lemans: Add gpr node
> arm64: dts: qcom: lemans-evk: Add sound card
>
> Monish Chunara (2):
> dt-bindings: mmc: sdhci-msm: Document the Lemans compatible
> arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
>
> Wasim Nazir (1):
> arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
>
> .../devicetree/bindings/mmc/sdhci-msm.yaml | 1 +
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 439 +++++++++++++++++++++
> arch/arm64/boot/dts/qcom/lemans.dtsi | 124 ++++++
> 3 files changed, 564 insertions(+)
> ---
> base-commit: d0630b758e593506126e8eda6c3d56097d1847c5
> change-id: 20250814-lemans-evk-bu-ec015ce4080e
>
> Best regards,
> --
> Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: using specified base-commit d0630b758e593506126e8eda6c3d56097d1847c5
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250826-lemans-evk-bu-v1-0-08016e0d3ce5@oss.qualcomm.com:
arch/arm64/boot/dts/qcom/lemans-evk.dtb: ethernet@23040000 (qcom,sa8775p-ethqos): Unevaluated properties are not allowed ('interconnect-names', 'interconnects' were unexpected)
from schema $id: http://devicetree.org/schemas/net/qcom,ethqos.yaml#
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible
2025-08-26 18:21 ` [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible Wasim Nazir
@ 2025-08-27 1:19 ` Dmitry Baryshkov
2025-08-28 14:54 ` Monish Chunara
0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-27 1:19 UTC (permalink / raw)
To: Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Monish Chunara
On Tue, Aug 26, 2025 at 11:51:00PM +0530, Wasim Nazir wrote:
> From: Monish Chunara <quic_mchunara@quicinc.com>
>
> Add the MSM SDHCI compatible name to support both eMMC and SD card for
> Lemans, which uses 'sa8775p' as the fallback SoC. Ensure the new
> compatible string matches existing Lemans-compatible formats without
> introducing a new naming convention.
>
> The SDHCI controller on Lemans is based on MSM SDHCI v5 IP. Hence,
> document the compatible with "qcom,sdhci-msm-v5" as the fallback.
>
> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/mmc/sdhci-msm.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> index 22d1f50c3fd1..fac5d21abb94 100644
> --- a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> +++ b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> @@ -49,6 +49,7 @@ properties:
> - qcom,qcs8300-sdhci
> - qcom,qdu1000-sdhci
> - qcom,sar2130p-sdhci
> + - qcom,sa8775p-sdhci
8 < 'r'
> - qcom,sc7180-sdhci
> - qcom,sc7280-sdhci
> - qcom,sc8280xp-sdhci
>
> --
> 2.51.0
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-08-26 18:21 ` [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration Wasim Nazir
@ 2025-08-27 1:20 ` Dmitry Baryshkov
2025-08-28 14:57 ` Monish Chunara
2025-09-03 16:12 ` Konrad Dybcio
0 siblings, 2 replies; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-27 1:20 UTC (permalink / raw)
To: Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Monish Chunara
On Tue, Aug 26, 2025 at 11:51:01PM +0530, Wasim Nazir wrote:
> From: Monish Chunara <quic_mchunara@quicinc.com>
>
> Introduce the SDHC v5 controller node for the Lemans platform.
> This controller supports either eMMC or SD-card, but only one
> can be active at a time. SD-card is the preferred configuration
> on Lemans targets, so describe this controller.
>
> Define the SDC interface pins including clk, cmd, and data lines
> to enable proper communication with the SDHC controller.
>
> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 70 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index 99a566b42ef2..a5a3cdba47f3 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
> };
> };
>
> + sdhc: mmc@87c4000 {
> + compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
> + reg = <0x0 0x087c4000 0x0 0x1000>;
> +
> + interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "hc_irq", "pwr_irq";
> +
> + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
> + <&gcc GCC_SDCC1_APPS_CLK>;
> + clock-names = "iface", "core";
> +
> + interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
> + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
> + interconnect-names = "sdhc-ddr", "cpu-sdhc";
> +
> + iommus = <&apps_smmu 0x0 0x0>;
> + dma-coherent;
> +
> + resets = <&gcc GCC_SDCC1_BCR>;
> +
> + no-sdio;
> + no-mmc;
> + bus-width = <4>;
This is the board configuration, it should be defined in the EVK DTS.
> + qcom,dll-config = <0x0007642c>;
> + qcom,ddr-config = <0x80040868>;
> +
> + status = "disabled";
> + };
> +
> usb_0_hsphy: phy@88e4000 {
> compatible = "qcom,sa8775p-usb-hs-phy",
> "qcom,usb-snps-hs-5nm-phy";
> @@ -5643,6 +5673,46 @@ qup_uart21_rx: qup-uart21-rx-pins {
> function = "qup3_se0";
> };
> };
> +
> + sdc_default: sdc-default-state {
> + clk-pins {
> + pins = "sdc1_clk";
> + bias-disable;
> + drive-strength = <16>;
> + };
> +
> + cmd-pins {
> + pins = "sdc1_cmd";
> + bias-pull-up;
> + drive-strength = <10>;
> + };
> +
> + data-pins {
> + pins = "sdc1_data";
> + bias-pull-up;
> + drive-strength = <10>;
> + };
> + };
> +
> + sdc_sleep: sdc-sleep-state {
> + clk-pins {
> + pins = "sdc1_clk";
> + drive-strength = <2>;
> + bias-bus-hold;
> + };
> +
> + cmd-pins {
> + pins = "sdc1_cmd";
> + drive-strength = <2>;
> + bias-bus-hold;
> + };
> +
> + data-pins {
> + pins = "sdc1_data";
> + drive-strength = <2>;
> + bias-bus-hold;
> + };
> + };
> };
>
> sram: sram@146d8000 {
>
> --
> 2.51.0
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
@ 2025-08-27 1:35 ` Dmitry Baryshkov
2025-08-28 6:35 ` Sushrut Shree Trivedi
` (3 more replies)
2025-08-27 23:06 ` Bjorn Andersson
2025-08-28 6:56 ` Krzysztof Kozlowski
2 siblings, 4 replies; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-27 1:35 UTC (permalink / raw)
To: Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Viken Dadhaniya, Sushrut Shree Trivedi, Nirmesh Kumar Singh,
Krishna Kurapati, Mohd Ayaan Anwar, Dikshita Agarwal,
Monish Chunara, Vishal Kumar Pal
On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> Enhance the Qualcomm Lemans EVK board file to support essential
> peripherals and improve overall hardware capabilities, as
> outlined below:
> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> controllers to facilitate DMA and peripheral communication.
> - Add support for PCIe-0/1, including required regulators and PHYs,
> to enable high-speed external device connectivity.
> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> GPIO lines for extended I/O functionality.
> - Enable the USB0 controller in device mode to support USB peripheral
> operations.
> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> firmware.
> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> and other consumers.
> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> Ethernet MAC address via nvmem for network configuration.
> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> - Add support for the Iris video decoder, including the required
> firmware, to enable video decoding capabilities.
> - Enable SD-card slot on SDHC.
>
> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> 1 file changed, 387 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 9e415012140b..642b66c4ad1e 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -16,7 +16,10 @@ / {
> compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
>
> aliases {
> + ethernet0 = ðernet0;
> + mmc1 = &sdhc;
> serial0 = &uart10;
> + serial1 = &uart17;
> };
>
> chosen {
> @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
> };
> };
> };
> +
> + vmmc_sdc: regulator-vmmc-sdc {
> + compatible = "regulator-fixed";
> + regulator-name = "vmmc_sdc";
Non-switchable, always enabled?
> +
> + regulator-min-microvolt = <2950000>;
> + regulator-max-microvolt = <2950000>;
> + };
> +
> + vreg_sdc: regulator-vreg-sdc {
> + compatible = "regulator-gpio";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2950000>;
> + regulator-name = "vreg_sdc";
> + regulator-type = "voltage";
This one also can not be disabled?
> +
> + startup-delay-us = <100>;
> +
> + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
> +
> + states = <1800000 0x1
> + 2950000 0x0>;
> + };
> };
>
> &apps_rsc {
> @@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
> };
> };
>
> +ðernet0 {
> + phy-handle = <&hsgmii_phy0>;
> + phy-mode = "2500base-x";
> +
> + pinctrl-0 = <ðernet0_default>;
> + pinctrl-names = "default";
> +
> + snps,mtl-rx-config = <&mtl_rx_setup>;
> + snps,mtl-tx-config = <&mtl_tx_setup>;
> + snps,ps-speed = <1000>;
> +
> + nvmem-cells = <&mac_addr0>;
> + nvmem-cell-names = "mac-address";
> +
> + status = "okay";
> +
> + mdio {
> + compatible = "snps,dwmac-mdio";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + hsgmii_phy0: ethernet-phy@1c {
> + compatible = "ethernet-phy-id004d.d101";
> + reg = <0x1c>;
> + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
> + reset-assert-us = <11000>;
> + reset-deassert-us = <70000>;
> + };
> + };
> +
> + mtl_rx_setup: rx-queues-config {
> + snps,rx-queues-to-use = <4>;
> + snps,rx-sched-sp;
> +
> + queue0 {
> + snps,dcb-algorithm;
> + snps,map-to-dma-channel = <0x0>;
> + snps,route-up;
> + snps,priority = <0x1>;
> + };
> +
> + queue1 {
> + snps,dcb-algorithm;
> + snps,map-to-dma-channel = <0x1>;
> + snps,route-ptp;
> + };
> +
> + queue2 {
> + snps,avb-algorithm;
> + snps,map-to-dma-channel = <0x2>;
> + snps,route-avcp;
> + };
> +
> + queue3 {
> + snps,avb-algorithm;
> + snps,map-to-dma-channel = <0x3>;
> + snps,priority = <0xc>;
> + };
> + };
> +
> + mtl_tx_setup: tx-queues-config {
> + snps,tx-queues-to-use = <4>;
> +
> + queue0 {
> + snps,dcb-algorithm;
> + };
> +
> + queue1 {
> + snps,dcb-algorithm;
> + };
> +
> + queue2 {
> + snps,avb-algorithm;
> + snps,send_slope = <0x1000>;
> + snps,idle_slope = <0x1000>;
> + snps,high_credit = <0x3e800>;
> + snps,low_credit = <0xffc18000>;
> + };
> +
> + queue3 {
> + snps,avb-algorithm;
> + snps,send_slope = <0x1000>;
> + snps,idle_slope = <0x1000>;
> + snps,high_credit = <0x3e800>;
> + snps,low_credit = <0xffc18000>;
> + };
> + };
> +};
> +
> +&gpi_dma0 {
> + status = "okay";
> +};
> +
> +&gpi_dma1 {
> + status = "okay";
> +};
> +
> +&gpi_dma2 {
> + status = "okay";
> +};
> +
> +&i2c18 {
> + status = "okay";
> +
> + expander0: pca953x@38 {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x38>;
> + };
> +
> + expander1: pca953x@39 {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x39>;
> + };
> +
> + expander2: pca953x@3a {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x3a>;
> + };
> +
> + expander3: pca953x@3b {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x3b>;
> + };
> +
> + eeprom@50 {
> + compatible = "atmel,24c256";
> + reg = <0x50>;
> + pagesize = <64>;
> +
> + nvmem-layout {
> + compatible = "fixed-layout";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + mac_addr0: mac-addr@0 {
> + reg = <0x0 0x6>;
> + };
> + };
> + };
> +};
> +
> +&iris {
> + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
Should it be just _s6.mbn or _s6_16mb.mbn?
> +
> + status = "okay";
> +};
> +
> &mdss0 {
> status = "okay";
> };
> @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
> status = "okay";
> };
>
> +&pcie0 {
> + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
I think Mani has been asking lately to define these GPIOs inside the
port rather than in the host controller.
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie0_default_state>;
> +
> + status = "okay";
> +};
> +
[...]
> @@ -356,6 +720,29 @@ &ufs_mem_phy {
> status = "okay";
> };
>
> +&usb_0 {
> + status = "okay";
> +};
> +
> +&usb_0_dwc3 {
> + dr_mode = "peripheral";
Is it actually peripheral-only?
> +};
> +
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
2025-08-27 1:35 ` Dmitry Baryshkov
@ 2025-08-27 23:06 ` Bjorn Andersson
2025-08-28 12:23 ` Wasim Nazir
2025-08-28 6:56 ` Krzysztof Kozlowski
2 siblings, 1 reply; 33+ messages in thread
From: Bjorn Andersson @ 2025-08-27 23:06 UTC (permalink / raw)
To: Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Viken Dadhaniya,
Sushrut Shree Trivedi, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal
On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> Enhance the Qualcomm Lemans EVK board file to support essential
> peripherals and improve overall hardware capabilities, as
> outlined below:
> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> controllers to facilitate DMA and peripheral communication.
> - Add support for PCIe-0/1, including required regulators and PHYs,
> to enable high-speed external device connectivity.
> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> GPIO lines for extended I/O functionality.
> - Enable the USB0 controller in device mode to support USB peripheral
> operations.
> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> firmware.
> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> and other consumers.
> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> Ethernet MAC address via nvmem for network configuration.
> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> - Add support for the Iris video decoder, including the required
> firmware, to enable video decoding capabilities.
> - Enable SD-card slot on SDHC.
I know I asked for you to lump things together in the initial
contribution to provide as much features as possible in that initial
patch, but now that is in place and this patch really is a bunch of
independent logical changes and this commit message reads much more like
a cover letter...
>
> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
And I don't think you all wrote this patch, you probably all wrote
individual pieces and then one of you created the actual patch?
The important part is that we don't want 9 different patch series
floating around with unmet dependencies and relying on me to try to
stitch them together.
But if you could do what you did for patch 2, 4, and 5 for logical
chunks of this change, that would be excellent (i.e. you collect the
individual patches, you add your signed-off-by, and you send them all
together).
Regards,
Bjorn
> ---
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> 1 file changed, 387 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 9e415012140b..642b66c4ad1e 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -16,7 +16,10 @@ / {
> compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
>
> aliases {
> + ethernet0 = ðernet0;
> + mmc1 = &sdhc;
> serial0 = &uart10;
> + serial1 = &uart17;
> };
>
> chosen {
> @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
> };
> };
> };
> +
> + vmmc_sdc: regulator-vmmc-sdc {
> + compatible = "regulator-fixed";
> + regulator-name = "vmmc_sdc";
> +
> + regulator-min-microvolt = <2950000>;
> + regulator-max-microvolt = <2950000>;
> + };
> +
> + vreg_sdc: regulator-vreg-sdc {
> + compatible = "regulator-gpio";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2950000>;
> + regulator-name = "vreg_sdc";
> + regulator-type = "voltage";
> +
> + startup-delay-us = <100>;
> +
> + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
> +
> + states = <1800000 0x1
> + 2950000 0x0>;
> + };
> };
>
> &apps_rsc {
> @@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
> };
> };
>
> +ðernet0 {
> + phy-handle = <&hsgmii_phy0>;
> + phy-mode = "2500base-x";
> +
> + pinctrl-0 = <ðernet0_default>;
> + pinctrl-names = "default";
> +
> + snps,mtl-rx-config = <&mtl_rx_setup>;
> + snps,mtl-tx-config = <&mtl_tx_setup>;
> + snps,ps-speed = <1000>;
> +
> + nvmem-cells = <&mac_addr0>;
> + nvmem-cell-names = "mac-address";
> +
> + status = "okay";
> +
> + mdio {
> + compatible = "snps,dwmac-mdio";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + hsgmii_phy0: ethernet-phy@1c {
> + compatible = "ethernet-phy-id004d.d101";
> + reg = <0x1c>;
> + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
> + reset-assert-us = <11000>;
> + reset-deassert-us = <70000>;
> + };
> + };
> +
> + mtl_rx_setup: rx-queues-config {
> + snps,rx-queues-to-use = <4>;
> + snps,rx-sched-sp;
> +
> + queue0 {
> + snps,dcb-algorithm;
> + snps,map-to-dma-channel = <0x0>;
> + snps,route-up;
> + snps,priority = <0x1>;
> + };
> +
> + queue1 {
> + snps,dcb-algorithm;
> + snps,map-to-dma-channel = <0x1>;
> + snps,route-ptp;
> + };
> +
> + queue2 {
> + snps,avb-algorithm;
> + snps,map-to-dma-channel = <0x2>;
> + snps,route-avcp;
> + };
> +
> + queue3 {
> + snps,avb-algorithm;
> + snps,map-to-dma-channel = <0x3>;
> + snps,priority = <0xc>;
> + };
> + };
> +
> + mtl_tx_setup: tx-queues-config {
> + snps,tx-queues-to-use = <4>;
> +
> + queue0 {
> + snps,dcb-algorithm;
> + };
> +
> + queue1 {
> + snps,dcb-algorithm;
> + };
> +
> + queue2 {
> + snps,avb-algorithm;
> + snps,send_slope = <0x1000>;
> + snps,idle_slope = <0x1000>;
> + snps,high_credit = <0x3e800>;
> + snps,low_credit = <0xffc18000>;
> + };
> +
> + queue3 {
> + snps,avb-algorithm;
> + snps,send_slope = <0x1000>;
> + snps,idle_slope = <0x1000>;
> + snps,high_credit = <0x3e800>;
> + snps,low_credit = <0xffc18000>;
> + };
> + };
> +};
> +
> +&gpi_dma0 {
> + status = "okay";
> +};
> +
> +&gpi_dma1 {
> + status = "okay";
> +};
> +
> +&gpi_dma2 {
> + status = "okay";
> +};
> +
> +&i2c18 {
> + status = "okay";
> +
> + expander0: pca953x@38 {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x38>;
> + };
> +
> + expander1: pca953x@39 {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x39>;
> + };
> +
> + expander2: pca953x@3a {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x3a>;
> + };
> +
> + expander3: pca953x@3b {
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x3b>;
> + };
> +
> + eeprom@50 {
> + compatible = "atmel,24c256";
> + reg = <0x50>;
> + pagesize = <64>;
> +
> + nvmem-layout {
> + compatible = "fixed-layout";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + mac_addr0: mac-addr@0 {
> + reg = <0x0 0x6>;
> + };
> + };
> + };
> +};
> +
> +&iris {
> + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
> +
> + status = "okay";
> +};
> +
> &mdss0 {
> status = "okay";
> };
> @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
> status = "okay";
> };
>
> +&pcie0 {
> + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie0_default_state>;
> +
> + status = "okay";
> +};
> +
> +&pcie0_phy {
> + vdda-phy-supply = <&vreg_l5a>;
> + vdda-pll-supply = <&vreg_l1c>;
> +
> + status = "okay";
> +};
> +
> +&pcie1 {
> + perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie1_default_state>;
> +
> + status = "okay";
> +};
> +
> +&pcie1_phy {
> + vdda-phy-supply = <&vreg_l5a>;
> + vdda-pll-supply = <&vreg_l1c>;
> +
> + status = "okay";
> +};
> +
> +&qupv3_id_0 {
> + status = "okay";
> +};
> +
> &qupv3_id_1 {
> status = "okay";
> };
>
> +&qupv3_id_2 {
> + status = "okay";
> +};
> +
> +&remoteproc_adsp {
> + firmware-name = "qcom/sa8775p/adsp.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp0 {
> + firmware-name = "qcom/sa8775p/cdsp0.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp1 {
> + firmware-name = "qcom/sa8775p/cdsp1.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_gpdsp0 {
> + firmware-name = "qcom/sa8775p/gpdsp0.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_gpdsp1 {
> + firmware-name = "qcom/sa8775p/gpdsp1.mbn";
> +
> + status = "okay";
> +};
> +
> +&sdhc {
> + vmmc-supply = <&vmmc_sdc>;
> + vqmmc-supply = <&vreg_sdc>;
> +
> + pinctrl-0 = <&sdc_default>, <&sd_cd>;
> + pinctrl-1 = <&sdc_sleep>, <&sd_cd>;
> + pinctrl-names = "default", "sleep";
> +
> + power-domains = <&rpmhpd SA8775P_CX>;
> + operating-points-v2 = <&sdhc_opp_table>;
> +
> + cd-gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
> +
> + status = "okay";
> +
> + sdhc_opp_table: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-100000000 {
> + opp-hz = /bits/ 64 <100000000>;
> + required-opps = <&rpmhpd_opp_low_svs>;
> + opp-peak-kBps = <1800000 400000>;
> + opp-avg-kBps = <100000 0>;
> + };
> +
> + opp-384000000 {
> + opp-hz = /bits/ 64 <384000000>;
> + required-opps = <&rpmhpd_opp_nom>;
> + opp-peak-kBps = <5400000 1600000>;
> + opp-avg-kBps = <390000 0>;
> + };
> + };
> +};
> +
> +&serdes0 {
> + phy-supply = <&vreg_l5a>;
> +
> + status = "okay";
> +};
> +
> &sleep_clk {
> clock-frequency = <32768>;
> };
>
> +&tlmm {
> + ethernet0_default: ethernet0-default-state {
> + ethernet0_mdc: ethernet0-mdc-pins {
> + pins = "gpio8";
> + function = "emac0_mdc";
> + drive-strength = <16>;
> + bias-pull-up;
> + };
> +
> + ethernet0_mdio: ethernet0-mdio-pins {
> + pins = "gpio9";
> + function = "emac0_mdio";
> + drive-strength = <16>;
> + bias-pull-up;
> + };
> + };
> +
> + pcie0_default_state: pcie0-default-state {
> + clkreq-pins {
> + pins = "gpio1";
> + function = "pcie0_clkreq";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-pins {
> + pins = "gpio2";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + wake-pins {
> + pins = "gpio0";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +
> + pcie1_default_state: pcie1-default-state {
> + clkreq-pins {
> + pins = "gpio3";
> + function = "pcie1_clkreq";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-pins {
> + pins = "gpio4";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + wake-pins {
> + pins = "gpio5";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +
> + sd_cd: sd-cd-state {
> + pins = "gpio36";
> + function = "gpio";
> + bias-pull-up;
> + };
> +};
> +
> &uart10 {
> compatible = "qcom,geni-debug-uart";
> pinctrl-0 = <&qup_uart10_default>;
> @@ -356,6 +720,29 @@ &ufs_mem_phy {
> status = "okay";
> };
>
> +&usb_0 {
> + status = "okay";
> +};
> +
> +&usb_0_dwc3 {
> + dr_mode = "peripheral";
> +};
> +
> +&usb_0_hsphy {
> + vdda-pll-supply = <&vreg_l7a>;
> + vdda18-supply = <&vreg_l6c>;
> + vdda33-supply = <&vreg_l9a>;
> +
> + status = "okay";
> +};
> +
> +&usb_0_qmpphy {
> + vdda-phy-supply = <&vreg_l1c>;
> + vdda-pll-supply = <&vreg_l7a>;
> +
> + status = "okay";
> +};
> +
> &xo_board_clk {
> clock-frequency = <38400000>;
> };
>
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card
2025-08-26 18:21 ` [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card Wasim Nazir
@ 2025-08-27 23:07 ` Bjorn Andersson
2025-08-28 16:21 ` Mohammad Rafi Shaik
0 siblings, 1 reply; 33+ messages in thread
From: Bjorn Andersson @ 2025-08-27 23:07 UTC (permalink / raw)
To: Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Mohammad Rafi Shaik
On Tue, Aug 26, 2025 at 11:51:04PM +0530, Wasim Nazir wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> Add the sound card node with tested playback over max98357a
> I2S speakers amplifier and I2S mic.
>
> Introduce HS (High-Speed) MI2S pin control support.
> The I2S max98357a speaker amplifier is connected via HS0 and I2S
> microphones utilize the HS2 interface.
Please rewrite this as one fluent description of the hardware, not as 3
separate things thrown into the same commit message.
Regards,
Bjorn
>
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
> 2 files changed, 66 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 642b66c4ad1e..4adf0f956580 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -7,6 +7,7 @@
>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
>
> #include "lemans.dtsi"
> #include "lemans-pmics.dtsi"
> @@ -26,6 +27,17 @@ chosen {
> stdout-path = "serial0:115200n8";
> };
>
> + dmic: audio-codec-0 {
> + compatible = "dmic-codec";
> + #sound-dai-cells = <0>;
> + num-channels = <1>;
> + };
> +
> + max98357a: audio-codec-1 {
> + compatible = "maxim,max98357a";
> + #sound-dai-cells = <0>;
> + };
> +
> edp0-connector {
> compatible = "dp-connector";
> label = "EDP0";
> @@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
> states = <1800000 0x1
> 2950000 0x0>;
> };
> +
> + sound {
> + compatible = "qcom,qcs9100-sndcard";
> + model = "LEMANS-EVK";
> +
> + pinctrl-0 = <&hs0_mi2s_active>, <&hs2_mi2s_active>;
> + pinctrl-names = "default";
> +
> + hs0-mi2s-playback-dai-link {
> + link-name = "HS0 MI2S Playback";
> +
> + codec {
> + sound-dai = <&max98357a>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + hs2-mi2s-capture-dai-link {
> + link-name = "HS2 MI2S Capture";
> +
> + codec {
> + sound-dai = <&dmic>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai TERTIARY_MI2S_TX>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> + };
> };
>
> &apps_rsc {
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index 28f0976ab526..c8e6246b6062 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
> bias-disable;
> };
>
> + hs0_mi2s_active: hs0-mi2s-active-state {
> + pins = "gpio114", "gpio115", "gpio116", "gpio117";
> + function = "hs0_mi2s";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + hs2_mi2s_active: hs2-mi2s-active-state {
> + pins = "gpio122", "gpio123", "gpio124", "gpio125";
> + function = "hs2_mi2s";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> qup_i2c0_default: qup-i2c0-state {
> pins = "gpio20", "gpio21";
> function = "qup0_se0";
>
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-27 1:35 ` Dmitry Baryshkov
@ 2025-08-28 6:35 ` Sushrut Shree Trivedi
2025-08-28 11:01 ` Dmitry Baryshkov
2025-08-28 13:08 ` Sushrut Shree Trivedi
` (2 subsequent siblings)
3 siblings, 1 reply; 33+ messages in thread
From: Sushrut Shree Trivedi @ 2025-08-28 6:35 UTC (permalink / raw)
To: Dmitry Baryshkov, Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Viken Dadhaniya, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal, krishna.chundru
On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
>> Enhance the Qualcomm Lemans EVK board file to support essential
>> peripherals and improve overall hardware capabilities, as
>> outlined below:
>> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
>> controllers to facilitate DMA and peripheral communication.
>> - Add support for PCIe-0/1, including required regulators and PHYs,
>> to enable high-speed external device connectivity.
>> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
>> GPIO lines for extended I/O functionality.
>> - Enable the USB0 controller in device mode to support USB peripheral
>> operations.
>> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
>> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
>> firmware.
>> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
>> and other consumers.
>> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
>> Ethernet MAC address via nvmem for network configuration.
>> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
>> - Add support for the Iris video decoder, including the required
>> firmware, to enable video decoding capabilities.
>> - Enable SD-card slot on SDHC.
>>
>> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
>> 1 file changed, 387 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index 9e415012140b..642b66c4ad1e 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -16,7 +16,10 @@ / {
>> compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
>>
>> aliases {
>> + ethernet0 = ðernet0;
>> + mmc1 = &sdhc;
>> serial0 = &uart10;
>> + serial1 = &uart17;
>> };
>>
>> chosen {
>> @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
>> };
>> };
>> };
>> +
>> + vmmc_sdc: regulator-vmmc-sdc {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vmmc_sdc";
> Non-switchable, always enabled?
>
>> +
>> + regulator-min-microvolt = <2950000>;
>> + regulator-max-microvolt = <2950000>;
>> + };
>> +
>> + vreg_sdc: regulator-vreg-sdc {
>> + compatible = "regulator-gpio";
>> +
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <2950000>;
>> + regulator-name = "vreg_sdc";
>> + regulator-type = "voltage";
> This one also can not be disabled?
>
>> +
>> + startup-delay-us = <100>;
>> +
>> + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
>> +
>> + states = <1800000 0x1
>> + 2950000 0x0>;
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
>> };
>> };
>>
>> +ðernet0 {
>> + phy-handle = <&hsgmii_phy0>;
>> + phy-mode = "2500base-x";
>> +
>> + pinctrl-0 = <ðernet0_default>;
>> + pinctrl-names = "default";
>> +
>> + snps,mtl-rx-config = <&mtl_rx_setup>;
>> + snps,mtl-tx-config = <&mtl_tx_setup>;
>> + snps,ps-speed = <1000>;
>> +
>> + nvmem-cells = <&mac_addr0>;
>> + nvmem-cell-names = "mac-address";
>> +
>> + status = "okay";
>> +
>> + mdio {
>> + compatible = "snps,dwmac-mdio";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + hsgmii_phy0: ethernet-phy@1c {
>> + compatible = "ethernet-phy-id004d.d101";
>> + reg = <0x1c>;
>> + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
>> + reset-assert-us = <11000>;
>> + reset-deassert-us = <70000>;
>> + };
>> + };
>> +
>> + mtl_rx_setup: rx-queues-config {
>> + snps,rx-queues-to-use = <4>;
>> + snps,rx-sched-sp;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x0>;
>> + snps,route-up;
>> + snps,priority = <0x1>;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x1>;
>> + snps,route-ptp;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x2>;
>> + snps,route-avcp;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x3>;
>> + snps,priority = <0xc>;
>> + };
>> + };
>> +
>> + mtl_tx_setup: tx-queues-config {
>> + snps,tx-queues-to-use = <4>;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> + };
>> +};
>> +
>> +&gpi_dma0 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma1 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma2 {
>> + status = "okay";
>> +};
>> +
>> +&i2c18 {
>> + status = "okay";
>> +
>> + expander0: pca953x@38 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x38>;
>> + };
>> +
>> + expander1: pca953x@39 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x39>;
>> + };
>> +
>> + expander2: pca953x@3a {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3a>;
>> + };
>> +
>> + expander3: pca953x@3b {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3b>;
>> + };
>> +
>> + eeprom@50 {
>> + compatible = "atmel,24c256";
>> + reg = <0x50>;
>> + pagesize = <64>;
>> +
>> + nvmem-layout {
>> + compatible = "fixed-layout";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + mac_addr0: mac-addr@0 {
>> + reg = <0x0 0x6>;
>> + };
>> + };
>> + };
>> +};
>> +
>> +&iris {
>> + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
> Should it be just _s6.mbn or _s6_16mb.mbn?
>
>> +
>> + status = "okay";
>> +};
>> +
>> &mdss0 {
>> status = "okay";
>> };
>> @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
>> status = "okay";
>> };
>>
>> +&pcie0 {
>> + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
>> + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
> I think Mani has been asking lately to define these GPIOs inside the
> port rather than in the host controller.
Hi Dmitry,
For moving these to the port requires changes in the sa8775p.dtsi to change
phys property from controller node to port node.
Mani is asking to add these for newer platforms like QCS8300 not for
existing one's.
- Sushrut
>> +
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pcie0_default_state>;
>> +
>> + status = "okay";
>> +};
>> +
> [...]
>
>> @@ -356,6 +720,29 @@ &ufs_mem_phy {
>> status = "okay";
>> };
>>
>> +&usb_0 {
>> + status = "okay";
>> +};
>> +
>> +&usb_0_dwc3 {
>> + dr_mode = "peripheral";
> Is it actually peripheral-only?
>
>> +};
>> +
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
2025-08-27 1:35 ` Dmitry Baryshkov
2025-08-27 23:06 ` Bjorn Andersson
@ 2025-08-28 6:56 ` Krzysztof Kozlowski
2025-08-28 15:15 ` Wasim Nazir
2 siblings, 1 reply; 33+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-28 6:56 UTC (permalink / raw)
To: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran
Cc: kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Viken Dadhaniya, Sushrut Shree Trivedi,
Nirmesh Kumar Singh, Krishna Kurapati, Mohd Ayaan Anwar,
Dikshita Agarwal, Monish Chunara, Vishal Kumar Pal
On 26/08/2025 20:21, Wasim Nazir wrote:
> +
> +&gpi_dma0 {
> + status = "okay";
> +};
> +
> +&gpi_dma1 {
> + status = "okay";
> +};
> +
> +&gpi_dma2 {
> + status = "okay";
> +};
> +
> +&i2c18 {
> + status = "okay";
> +
> + expander0: pca953x@38 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> + compatible = "ti,tca9538";
> + #gpio-cells = <2>;
> + gpio-controller;
> + reg = <0x38>;
> + };
> +
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-28 6:35 ` Sushrut Shree Trivedi
@ 2025-08-28 11:01 ` Dmitry Baryshkov
0 siblings, 0 replies; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-28 11:01 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Viken Dadhaniya, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal, krishna.chundru
On Thu, Aug 28, 2025 at 12:05:21PM +0530, Sushrut Shree Trivedi wrote:
>
> On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > peripherals and improve overall hardware capabilities, as
> > > outlined below:
> > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > controllers to facilitate DMA and peripheral communication.
> > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > to enable high-speed external device connectivity.
> > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > GPIO lines for extended I/O functionality.
> > > - Enable the USB0 controller in device mode to support USB peripheral
> > > operations.
> > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > firmware.
> > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > and other consumers.
> > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > Ethernet MAC address via nvmem for network configuration.
> > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > - Add support for the Iris video decoder, including the required
> > > firmware, to enable video decoding capabilities.
> > > - Enable SD-card slot on SDHC.
> > >
> > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > ---
> > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > 1 file changed, 387 insertions(+)
> > >
> > > status = "okay";
> > > };
> > > @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
> > > status = "okay";
> > > };
> > > +&pcie0 {
> > > + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
> > > + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
> > I think Mani has been asking lately to define these GPIOs inside the
> > port rather than in the host controller.
>
> Hi Dmitry,
>
> For moving these to the port requires changes in the sa8775p.dtsi to change
> phys property from controller node to port node.
>
> Mani is asking to add these for newer platforms like QCS8300 not for
> existing one's.
Ack, thanks for the explanation.
The rest of the quetions are unanswered.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-27 23:06 ` Bjorn Andersson
@ 2025-08-28 12:23 ` Wasim Nazir
0 siblings, 0 replies; 33+ messages in thread
From: Wasim Nazir @ 2025-08-28 12:23 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Viken Dadhaniya,
Sushrut Shree Trivedi, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal
On Wed, Aug 27, 2025 at 06:06:04PM -0500, Bjorn Andersson wrote:
> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > Enhance the Qualcomm Lemans EVK board file to support essential
> > peripherals and improve overall hardware capabilities, as
> > outlined below:
> > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > controllers to facilitate DMA and peripheral communication.
> > - Add support for PCIe-0/1, including required regulators and PHYs,
> > to enable high-speed external device connectivity.
> > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > GPIO lines for extended I/O functionality.
> > - Enable the USB0 controller in device mode to support USB peripheral
> > operations.
> > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > firmware.
> > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > and other consumers.
> > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > Ethernet MAC address via nvmem for network configuration.
> > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > - Add support for the Iris video decoder, including the required
> > firmware, to enable video decoding capabilities.
> > - Enable SD-card slot on SDHC.
>
> I know I asked for you to lump things together in the initial
> contribution to provide as much features as possible in that initial
> patch, but now that is in place and this patch really is a bunch of
> independent logical changes and this commit message reads much more like
> a cover letter...
>
> >
> > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>
> And I don't think you all wrote this patch, you probably all wrote
> individual pieces and then one of you created the actual patch?
>
> The important part is that we don't want 9 different patch series
> floating around with unmet dependencies and relying on me to try to
> stitch them together.
>
> But if you could do what you did for patch 2, 4, and 5 for logical
> chunks of this change, that would be excellent (i.e. you collect the
> individual patches, you add your signed-off-by, and you send them all
> together).
Sure Bjorn, I will split it in next version of the same series.
--
Regards,
Wasim
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-27 1:35 ` Dmitry Baryshkov
2025-08-28 6:35 ` Sushrut Shree Trivedi
@ 2025-08-28 13:08 ` Sushrut Shree Trivedi
2025-08-28 13:30 ` Dmitry Baryshkov
2025-08-28 15:05 ` Monish Chunara
2025-09-01 11:32 ` Vikash Garodia
3 siblings, 1 reply; 33+ messages in thread
From: Sushrut Shree Trivedi @ 2025-08-28 13:08 UTC (permalink / raw)
To: Dmitry Baryshkov, Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Viken Dadhaniya, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal
On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
>> Enhance the Qualcomm Lemans EVK board file to support essential
>> peripherals and improve overall hardware capabilities, as
>> outlined below:
>> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
>> controllers to facilitate DMA and peripheral communication.
>> - Add support for PCIe-0/1, including required regulators and PHYs,
>> to enable high-speed external device connectivity.
>> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
>> GPIO lines for extended I/O functionality.
>> - Enable the USB0 controller in device mode to support USB peripheral
>> operations.
>> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
>> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
>> firmware.
>> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
>> and other consumers.
>> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
>> Ethernet MAC address via nvmem for network configuration.
>> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
>> - Add support for the Iris video decoder, including the required
>> firmware, to enable video decoding capabilities.
>> - Enable SD-card slot on SDHC.
>>
>> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
>> 1 file changed, 387 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index 9e415012140b..642b66c4ad1e 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -16,7 +16,10 @@ / {
>> compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
>>
>> aliases {
>> + ethernet0 = ðernet0;
>> + mmc1 = &sdhc;
>> serial0 = &uart10;
>> + serial1 = &uart17;
>> };
>>
>> chosen {
>> @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
>> };
>> };
>> };
>> +
>> + vmmc_sdc: regulator-vmmc-sdc {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vmmc_sdc";
> Non-switchable, always enabled?
>
>> +
>> + regulator-min-microvolt = <2950000>;
>> + regulator-max-microvolt = <2950000>;
>> + };
>> +
>> + vreg_sdc: regulator-vreg-sdc {
>> + compatible = "regulator-gpio";
>> +
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <2950000>;
>> + regulator-name = "vreg_sdc";
>> + regulator-type = "voltage";
> This one also can not be disabled?
>
>> +
>> + startup-delay-us = <100>;
>> +
>> + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
>> +
>> + states = <1800000 0x1
>> + 2950000 0x0>;
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
>> };
>> };
>>
>> +ðernet0 {
>> + phy-handle = <&hsgmii_phy0>;
>> + phy-mode = "2500base-x";
>> +
>> + pinctrl-0 = <ðernet0_default>;
>> + pinctrl-names = "default";
>> +
>> + snps,mtl-rx-config = <&mtl_rx_setup>;
>> + snps,mtl-tx-config = <&mtl_tx_setup>;
>> + snps,ps-speed = <1000>;
>> +
>> + nvmem-cells = <&mac_addr0>;
>> + nvmem-cell-names = "mac-address";
>> +
>> + status = "okay";
>> +
>> + mdio {
>> + compatible = "snps,dwmac-mdio";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + hsgmii_phy0: ethernet-phy@1c {
>> + compatible = "ethernet-phy-id004d.d101";
>> + reg = <0x1c>;
>> + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
>> + reset-assert-us = <11000>;
>> + reset-deassert-us = <70000>;
>> + };
>> + };
>> +
>> + mtl_rx_setup: rx-queues-config {
>> + snps,rx-queues-to-use = <4>;
>> + snps,rx-sched-sp;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x0>;
>> + snps,route-up;
>> + snps,priority = <0x1>;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x1>;
>> + snps,route-ptp;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x2>;
>> + snps,route-avcp;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x3>;
>> + snps,priority = <0xc>;
>> + };
>> + };
>> +
>> + mtl_tx_setup: tx-queues-config {
>> + snps,tx-queues-to-use = <4>;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> + };
>> +};
>> +
>> +&gpi_dma0 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma1 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma2 {
>> + status = "okay";
>> +};
>> +
>> +&i2c18 {
>> + status = "okay";
>> +
>> + expander0: pca953x@38 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x38>;
>> + };
>> +
>> + expander1: pca953x@39 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x39>;
>> + };
>> +
>> + expander2: pca953x@3a {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3a>;
>> + };
>> +
>> + expander3: pca953x@3b {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3b>;
>> + };
>> +
>> + eeprom@50 {
>> + compatible = "atmel,24c256";
>> + reg = <0x50>;
>> + pagesize = <64>;
>> +
>> + nvmem-layout {
>> + compatible = "fixed-layout";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + mac_addr0: mac-addr@0 {
>> + reg = <0x0 0x6>;
>> + };
>> + };
>> + };
>> +};
>> +
>> +&iris {
>> + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
> Should it be just _s6.mbn or _s6_16mb.mbn?
>
>> +
>> + status = "okay";
>> +};
>> +
>> &mdss0 {
>> status = "okay";
>> };
>> @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
>> status = "okay";
>> };
>>
>> +&pcie0 {
>> + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
>> + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
> I think Mani has been asking lately to define these GPIOs inside the
> port rather than in the host controller.
>
>> +
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pcie0_default_state>;
>> +
>> + status = "okay";
>> +};
>> +
> [...]
>
>> @@ -356,6 +720,29 @@ &ufs_mem_phy {
>> status = "okay";
>> };
>>
>> +&usb_0 {
>> + status = "okay";
>> +};
>> +
>> +&usb_0_dwc3 {
>> + dr_mode = "peripheral";
> Is it actually peripheral-only?
Hi Dmitry,
HW supports OTG mode also, but for enabling OTG we need below mentioned
driver changes in dwc3-qcom.c :
a) dwc3 core callback registration by dwc3 glue driver; this change is under
review in upstream.
b) vbus supply enablement for host mode; this change is yet to be submitted
to upstream.
Post the above mentioned driver changes, we are planning to enable OTG on
usb0.
- Sushrut
>> +};
>> +
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-28 13:08 ` Sushrut Shree Trivedi
@ 2025-08-28 13:30 ` Dmitry Baryshkov
2025-08-29 14:20 ` Monish Chunara
0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-28 13:30 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Viken Dadhaniya, Nirmesh Kumar Singh, Krishna Kurapati,
Mohd Ayaan Anwar, Dikshita Agarwal, Monish Chunara,
Vishal Kumar Pal
On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
>
> On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > peripherals and improve overall hardware capabilities, as
> > > outlined below:
> > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > controllers to facilitate DMA and peripheral communication.
> > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > to enable high-speed external device connectivity.
> > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > GPIO lines for extended I/O functionality.
> > > - Enable the USB0 controller in device mode to support USB peripheral
> > > operations.
> > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > firmware.
> > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > and other consumers.
> > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > Ethernet MAC address via nvmem for network configuration.
> > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > - Add support for the Iris video decoder, including the required
> > > firmware, to enable video decoding capabilities.
> > > - Enable SD-card slot on SDHC.
> > >
> > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > ---
> > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > 1 file changed, 387 insertions(+)
> > >
> >
> > > @@ -356,6 +720,29 @@ &ufs_mem_phy {
> > > status = "okay";
> > > };
> > > +&usb_0 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_0_dwc3 {
> > > + dr_mode = "peripheral";
> > Is it actually peripheral-only?
>
> Hi Dmitry,
>
> HW supports OTG mode also, but for enabling OTG we need below mentioned
> driver changes in dwc3-qcom.c :
Is it the USB-C port? If so, then you should likely be using some form
of the Type-C port manager (in software or in hardware). These platforms
usually use pmic-glink in order to handle USB-C.
Or is it micro-USB-OTG port?
>
> a) dwc3 core callback registration by dwc3 glue driver; this change is under
> review in upstream.
> b) vbus supply enablement for host mode; this change is yet to be submitted
> to upstream.
>
> Post the above mentioned driver changes, we are planning to enable OTG on
> usb0.
>
> - Sushrut
>
> > > +};
> > > +
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible
2025-08-27 1:19 ` Dmitry Baryshkov
@ 2025-08-28 14:54 ` Monish Chunara
0 siblings, 0 replies; 33+ messages in thread
From: Monish Chunara @ 2025-08-28 14:54 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev
On Wed, Aug 27, 2025 at 04:19:33AM +0300, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:00PM +0530, Wasim Nazir wrote:
> > From: Monish Chunara <quic_mchunara@quicinc.com>
> >
> > Add the MSM SDHCI compatible name to support both eMMC and SD card for
> > Lemans, which uses 'sa8775p' as the fallback SoC. Ensure the new
> > compatible string matches existing Lemans-compatible formats without
> > introducing a new naming convention.
> >
> > The SDHCI controller on Lemans is based on MSM SDHCI v5 IP. Hence,
> > document the compatible with "qcom,sdhci-msm-v5" as the fallback.
> >
> > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > ---
> > Documentation/devicetree/bindings/mmc/sdhci-msm.yaml | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> > index 22d1f50c3fd1..fac5d21abb94 100644
> > --- a/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> > +++ b/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
> > @@ -49,6 +49,7 @@ properties:
> > - qcom,qcs8300-sdhci
> > - qcom,qdu1000-sdhci
> > - qcom,sar2130p-sdhci
> > + - qcom,sa8775p-sdhci
>
> 8 < 'r'
ACK.
>
> > - qcom,sc7180-sdhci
> > - qcom,sc7280-sdhci
> > - qcom,sc8280xp-sdhci
> >
> > --
> > 2.51.0
> >
>
> --
> With best wishes
> Dmitry
Regards,
Monish
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-08-27 1:20 ` Dmitry Baryshkov
@ 2025-08-28 14:57 ` Monish Chunara
2025-09-03 16:12 ` Konrad Dybcio
1 sibling, 0 replies; 33+ messages in thread
From: Monish Chunara @ 2025-08-28 14:57 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev
On Wed, Aug 27, 2025 at 04:20:20AM +0300, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:01PM +0530, Wasim Nazir wrote:
> > From: Monish Chunara <quic_mchunara@quicinc.com>
> >
> > Introduce the SDHC v5 controller node for the Lemans platform.
> > This controller supports either eMMC or SD-card, but only one
> > can be active at a time. SD-card is the preferred configuration
> > on Lemans targets, so describe this controller.
> >
> > Define the SDC interface pins including clk, cmd, and data lines
> > to enable proper communication with the SDHC controller.
> >
> > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > ---
> > arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
> > 1 file changed, 70 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> > index 99a566b42ef2..a5a3cdba47f3 100644
> > --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> > @@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
> > };
> > };
> >
> > + sdhc: mmc@87c4000 {
> > + compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
> > + reg = <0x0 0x087c4000 0x0 0x1000>;
> > +
> > + interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "hc_irq", "pwr_irq";
> > +
> > + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
> > + <&gcc GCC_SDCC1_APPS_CLK>;
> > + clock-names = "iface", "core";
> > +
> > + interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
> > + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
> > + interconnect-names = "sdhc-ddr", "cpu-sdhc";
> > +
> > + iommus = <&apps_smmu 0x0 0x0>;
> > + dma-coherent;
> > +
> > + resets = <&gcc GCC_SDCC1_BCR>;
> > +
> > + no-sdio;
> > + no-mmc;
> > + bus-width = <4>;
>
> This is the board configuration, it should be defined in the EVK DTS.
ACK.
>
> > + qcom,dll-config = <0x0007642c>;
> > + qcom,ddr-config = <0x80040868>;
> > +
> > + status = "disabled";
> > + };
Regards,
Monish
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-27 1:35 ` Dmitry Baryshkov
2025-08-28 6:35 ` Sushrut Shree Trivedi
2025-08-28 13:08 ` Sushrut Shree Trivedi
@ 2025-08-28 15:05 ` Monish Chunara
2025-09-01 11:32 ` Vikash Garodia
3 siblings, 0 replies; 33+ messages in thread
From: Monish Chunara @ 2025-08-28 15:05 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Wasim Nazir, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Viken Dadhaniya, Sushrut Shree Trivedi,
Nirmesh Kumar Singh, Krishna Kurapati, Mohd Ayaan Anwar,
Dikshita Agarwal, Vishal Kumar Pal
On Wed, Aug 27, 2025 at 04:35:59AM +0300, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > Enhance the Qualcomm Lemans EVK board file to support essential
> > peripherals and improve overall hardware capabilities, as
> > outlined below:
> > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > controllers to facilitate DMA and peripheral communication.
> > - Add support for PCIe-0/1, including required regulators and PHYs,
> > to enable high-speed external device connectivity.
> > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > GPIO lines for extended I/O functionality.
> > - Enable the USB0 controller in device mode to support USB peripheral
> > operations.
> > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > firmware.
> > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > and other consumers.
> > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > Ethernet MAC address via nvmem for network configuration.
> > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > - Add support for the Iris video decoder, including the required
> > firmware, to enable video decoding capabilities.
> > - Enable SD-card slot on SDHC.
> >
> > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > ---
> > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > 1 file changed, 387 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > index 9e415012140b..642b66c4ad1e 100644
> > --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> > @@ -16,7 +16,10 @@ / {
> > compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
> >
> > aliases {
> > + ethernet0 = ðernet0;
> > + mmc1 = &sdhc;
> > serial0 = &uart10;
> > + serial1 = &uart17;
> > };
> >
> > chosen {
> > @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
> > };
> > };
> > };
> > +
> > + vmmc_sdc: regulator-vmmc-sdc {
> > + compatible = "regulator-fixed";
> > + regulator-name = "vmmc_sdc";
>
> Non-switchable, always enabled?
According to the hardware schematic, the VMMC supply to the SD card is connected
to an always-on rail. Therefore, it remains continuously enabled and cannot be
turned off via software.
>
> > +
> > + regulator-min-microvolt = <2950000>;
> > + regulator-max-microvolt = <2950000>;
> > + };
> > +
> > + vreg_sdc: regulator-vreg-sdc {
> > + compatible = "regulator-gpio";
> > +
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <2950000>;
> > + regulator-name = "vreg_sdc";
> > + regulator-type = "voltage";
>
> This one also can not be disabled?
This is a voltage translator regulator for the SD Card IO lines (vqmmc), so it
can be at either of the 2 mentioned voltage levels : 1.8 V or 2.95 V, and cannot
be disabled.
>
> > +
> > + startup-delay-us = <100>;
> > +
> > + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
> > +
> > + states = <1800000 0x1
> > + 2950000 0x0>;
> > + };
> > };
> >
Regards,
Monish
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-28 6:56 ` Krzysztof Kozlowski
@ 2025-08-28 15:15 ` Wasim Nazir
0 siblings, 0 replies; 33+ messages in thread
From: Wasim Nazir @ 2025-08-28 15:15 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Viken Dadhaniya, Sushrut Shree Trivedi, Nirmesh Kumar Singh,
Krishna Kurapati, Mohd Ayaan Anwar, Dikshita Agarwal,
Monish Chunara, Vishal Kumar Pal
On Thu, Aug 28, 2025 at 08:56:07AM +0200, Krzysztof Kozlowski wrote:
> On 26/08/2025 20:21, Wasim Nazir wrote:
> > +
> > +&gpi_dma0 {
> > + status = "okay";
> > +};
> > +
> > +&gpi_dma1 {
> > + status = "okay";
> > +};
> > +
> > +&gpi_dma2 {
> > + status = "okay";
> > +};
> > +
> > +&i2c18 {
> > + status = "okay";
> > +
> > + expander0: pca953x@38 {
>
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
Ack.
>
> > + compatible = "ti,tca9538";
> > + #gpio-cells = <2>;
> > + gpio-controller;
> > + reg = <0x38>;
> > + };
> > +
>
>
>
> Best regards,
> Krzysztof
--
Regards,
Wasim
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card
2025-08-27 23:07 ` Bjorn Andersson
@ 2025-08-28 16:21 ` Mohammad Rafi Shaik
0 siblings, 0 replies; 33+ messages in thread
From: Mohammad Rafi Shaik @ 2025-08-28 16:21 UTC (permalink / raw)
To: Bjorn Andersson, Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev
On 8/28/2025 4:37 AM, Bjorn Andersson wrote:
> On Tue, Aug 26, 2025 at 11:51:04PM +0530, Wasim Nazir wrote:
>> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>>
>> Add the sound card node with tested playback over max98357a
>> I2S speakers amplifier and I2S mic.
>>
>> Introduce HS (High-Speed) MI2S pin control support.
>> The I2S max98357a speaker amplifier is connected via HS0 and I2S
>> microphones utilize the HS2 interface.
>
> Please rewrite this as one fluent description of the hardware, not as 3
> separate things thrown into the same commit message.
>
ACK,
Sure, will rewrite proper commit description in next version.
Thanks & Regards,
Rafi.
> Regards,
> Bjorn
>
>>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
>> 2 files changed, 66 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index 642b66c4ad1e..4adf0f956580 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -7,6 +7,7 @@
>>
>> #include <dt-bindings/gpio/gpio.h>
>> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>> +#include <dt-bindings/sound/qcom,q6afe.h>
>>
>> #include "lemans.dtsi"
>> #include "lemans-pmics.dtsi"
>> @@ -26,6 +27,17 @@ chosen {
>> stdout-path = "serial0:115200n8";
>> };
>>
>> + dmic: audio-codec-0 {
>> + compatible = "dmic-codec";
>> + #sound-dai-cells = <0>;
>> + num-channels = <1>;
>> + };
>> +
>> + max98357a: audio-codec-1 {
>> + compatible = "maxim,max98357a";
>> + #sound-dai-cells = <0>;
>> + };
>> +
>> edp0-connector {
>> compatible = "dp-connector";
>> label = "EDP0";
>> @@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
>> states = <1800000 0x1
>> 2950000 0x0>;
>> };
>> +
>> + sound {
>> + compatible = "qcom,qcs9100-sndcard";
>> + model = "LEMANS-EVK";
>> +
>> + pinctrl-0 = <&hs0_mi2s_active>, <&hs2_mi2s_active>;
>> + pinctrl-names = "default";
>> +
>> + hs0-mi2s-playback-dai-link {
>> + link-name = "HS0 MI2S Playback";
>> +
>> + codec {
>> + sound-dai = <&max98357a>;
>> + };
>> +
>> + cpu {
>> + sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
>> + };
>> +
>> + platform {
>> + sound-dai = <&q6apm>;
>> + };
>> + };
>> +
>> + hs2-mi2s-capture-dai-link {
>> + link-name = "HS2 MI2S Capture";
>> +
>> + codec {
>> + sound-dai = <&dmic>;
>> + };
>> +
>> + cpu {
>> + sound-dai = <&q6apmbedai TERTIARY_MI2S_TX>;
>> + };
>> +
>> + platform {
>> + sound-dai = <&q6apm>;
>> + };
>> + };
>> + };
>> };
>>
>> &apps_rsc {
>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> index 28f0976ab526..c8e6246b6062 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> @@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
>> bias-disable;
>> };
>>
>> + hs0_mi2s_active: hs0-mi2s-active-state {
>> + pins = "gpio114", "gpio115", "gpio116", "gpio117";
>> + function = "hs0_mi2s";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> + hs2_mi2s_active: hs2-mi2s-active-state {
>> + pins = "gpio122", "gpio123", "gpio124", "gpio125";
>> + function = "hs2_mi2s";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> qup_i2c0_default: qup-i2c0-state {
>> pins = "gpio20", "gpio21";
>> function = "qup0_se0";
>>
>> --
>> 2.51.0
>>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-28 13:30 ` Dmitry Baryshkov
@ 2025-08-29 14:20 ` Monish Chunara
2025-08-29 16:24 ` Dmitry Baryshkov
0 siblings, 1 reply; 33+ messages in thread
From: Monish Chunara @ 2025-08-29 14:20 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Richard Cochran, kernel, linux-mmc, devicetree, linux-kernel,
linux-arm-msm, netdev, Viken Dadhaniya, Nirmesh Kumar Singh,
Krishna Kurapati, Mohd Ayaan Anwar, Dikshita Agarwal,
Vishal Kumar Pal
On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
> On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
> >
> > On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > > peripherals and improve overall hardware capabilities, as
> > > > outlined below:
> > > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > > controllers to facilitate DMA and peripheral communication.
> > > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > > to enable high-speed external device connectivity.
> > > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > > GPIO lines for extended I/O functionality.
> > > > - Enable the USB0 controller in device mode to support USB peripheral
> > > > operations.
> > > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > > firmware.
> > > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > > and other consumers.
> > > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > > Ethernet MAC address via nvmem for network configuration.
> > > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > > - Add support for the Iris video decoder, including the required
> > > > firmware, to enable video decoding capabilities.
> > > > - Enable SD-card slot on SDHC.
> > > >
> > > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > > ---
> > > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > > 1 file changed, 387 insertions(+)
> > > >
> > >
> > > > @@ -356,6 +720,29 @@ &ufs_mem_phy {
> > > > status = "okay";
> > > > };
> > > > +&usb_0 {
> > > > + status = "okay";
> > > > +};
> > > > +
> > > > +&usb_0_dwc3 {
> > > > + dr_mode = "peripheral";
> > > Is it actually peripheral-only?
> >
> > Hi Dmitry,
> >
> > HW supports OTG mode also, but for enabling OTG we need below mentioned
> > driver changes in dwc3-qcom.c :
>
> Is it the USB-C port? If so, then you should likely be using some form
> of the Type-C port manager (in software or in hardware). These platforms
> usually use pmic-glink in order to handle USB-C.
>
> Or is it micro-USB-OTG port?
>
Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
controller for the same. Will be enabling relevant dts node as part of OTG
enablement once driver changes are in place.
> >
> > a) dwc3 core callback registration by dwc3 glue driver; this change is under
> > review in upstream.
> > b) vbus supply enablement for host mode; this change is yet to be submitted
> > to upstream.
> >
> > Post the above mentioned driver changes, we are planning to enable OTG on
> > usb0.
> >
> > - Sushrut
> >
> > > > +};
> > > > +
>
> --
> With best wishes
> Dmitry
Regards,
Monish
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-29 14:20 ` Monish Chunara
@ 2025-08-29 16:24 ` Dmitry Baryshkov
2025-09-01 7:32 ` Krishna Kurapati PSSNV
0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-08-29 16:24 UTC (permalink / raw)
To: Monish Chunara
Cc: Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Richard Cochran, kernel, linux-mmc, devicetree, linux-kernel,
linux-arm-msm, netdev, Viken Dadhaniya, Nirmesh Kumar Singh,
Krishna Kurapati, Mohd Ayaan Anwar, Dikshita Agarwal,
Vishal Kumar Pal
On Fri, Aug 29, 2025 at 07:50:57PM +0530, Monish Chunara wrote:
> On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
> > On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
> > >
> > > On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > > > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > > > peripherals and improve overall hardware capabilities, as
> > > > > outlined below:
> > > > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > > > controllers to facilitate DMA and peripheral communication.
> > > > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > > > to enable high-speed external device connectivity.
> > > > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > > > GPIO lines for extended I/O functionality.
> > > > > - Enable the USB0 controller in device mode to support USB peripheral
> > > > > operations.
> > > > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > > > firmware.
> > > > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > > > and other consumers.
> > > > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > > > Ethernet MAC address via nvmem for network configuration.
> > > > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > > > - Add support for the Iris video decoder, including the required
> > > > > firmware, to enable video decoding capabilities.
> > > > > - Enable SD-card slot on SDHC.
> > > > >
> > > > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > > > ---
> > > > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > > > 1 file changed, 387 insertions(+)
> > > > >
> > > >
> > > > > @@ -356,6 +720,29 @@ &ufs_mem_phy {
> > > > > status = "okay";
> > > > > };
> > > > > +&usb_0 {
> > > > > + status = "okay";
> > > > > +};
> > > > > +
> > > > > +&usb_0_dwc3 {
> > > > > + dr_mode = "peripheral";
> > > > Is it actually peripheral-only?
> > >
> > > Hi Dmitry,
> > >
> > > HW supports OTG mode also, but for enabling OTG we need below mentioned
> > > driver changes in dwc3-qcom.c :
> >
> > Is it the USB-C port? If so, then you should likely be using some form
> > of the Type-C port manager (in software or in hardware). These platforms
> > usually use pmic-glink in order to handle USB-C.
> >
> > Or is it micro-USB-OTG port?
> >
>
> Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
> controller for the same. Will be enabling relevant dts node as part of OTG
> enablement once driver changes are in place.
Which controller are you using? In the existing designs USB-C works
without extra patches for the DWC3 controller.
>
> > >
> > > a) dwc3 core callback registration by dwc3 glue driver; this change is under
> > > review in upstream.
> > > b) vbus supply enablement for host mode; this change is yet to be submitted
> > > to upstream.
> > >
> > > Post the above mentioned driver changes, we are planning to enable OTG on
> > > usb0.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-29 16:24 ` Dmitry Baryshkov
@ 2025-09-01 7:32 ` Krishna Kurapati PSSNV
2025-09-02 2:34 ` Dmitry Baryshkov
0 siblings, 1 reply; 33+ messages in thread
From: Krishna Kurapati PSSNV @ 2025-09-01 7:32 UTC (permalink / raw)
To: Dmitry Baryshkov, Monish Chunara
Cc: Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Richard Cochran, kernel, linux-mmc, devicetree, linux-kernel,
linux-arm-msm, netdev, Viken Dadhaniya, Nirmesh Kumar Singh,
Mohd Ayaan Anwar, Dikshita Agarwal, Vishal Kumar Pal
On 8/29/2025 9:54 PM, Dmitry Baryshkov wrote:
> On Fri, Aug 29, 2025 at 07:50:57PM +0530, Monish Chunara wrote:
>> On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
>>> On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
>>>>
>>>> On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
>>>>> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
>>>>>> Enhance the Qualcomm Lemans EVK board file to support essential
>>>>>> peripherals and improve overall hardware capabilities, as
>>>>>> outlined below:
>>>>>> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
>>>>>> controllers to facilitate DMA and peripheral communication.
>>>>>> - Add support for PCIe-0/1, including required regulators and PHYs,
>>>>>> to enable high-speed external device connectivity.
>>>>>> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
>>>>>> GPIO lines for extended I/O functionality.
>>>>>> - Enable the USB0 controller in device mode to support USB peripheral
>>>>>> operations.
>>>>>> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
>>>>>> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
>>>>>> firmware.
>>>>>> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
>>>>>> and other consumers.
>>>>>> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
>>>>>> Ethernet MAC address via nvmem for network configuration.
>>>>>> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
>>>>>> - Add support for the Iris video decoder, including the required
>>>>>> firmware, to enable video decoding capabilities.
>>>>>> - Enable SD-card slot on SDHC.
>>>>>>
>>>>>> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>>>>>> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>>>>>> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>>>>>> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>>>>>> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>>>>>> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>>>>>> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>>>>>> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>>>>>> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>>>>>> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>>>>>> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>>>>>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>>>>>> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
>>>>>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>>>>>> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>>>>>> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>>>>>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>>>>>> ---
>>>>>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
>>>>>> 1 file changed, 387 insertions(+)
>>>>>>
>>>>>
>>>>>> @@ -356,6 +720,29 @@ &ufs_mem_phy {
>>>>>> status = "okay";
>>>>>> };
>>>>>> +&usb_0 {
>>>>>> + status = "okay";
>>>>>> +};
>>>>>> +
>>>>>> +&usb_0_dwc3 {
>>>>>> + dr_mode = "peripheral";
>>>>> Is it actually peripheral-only?
>>>>
>>>> Hi Dmitry,
>>>>
>>>> HW supports OTG mode also, but for enabling OTG we need below mentioned
>>>> driver changes in dwc3-qcom.c :
>>>
>>> Is it the USB-C port? If so, then you should likely be using some form
>>> of the Type-C port manager (in software or in hardware). These platforms
>>> usually use pmic-glink in order to handle USB-C.
>>>
>>> Or is it micro-USB-OTG port?
>>>
>>
>> Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
>> controller for the same. Will be enabling relevant dts node as part of OTG
>> enablement once driver changes are in place.
>
> Which controller are you using? In the existing designs USB-C works
> without extra patches for the DWC3 controller.
>
Hi Dmitry,
On EVK Platform, the VBUS is controlled by a GPIO from expander.
Unlike in other platforms like SA8295 ADP, QCS8300 Ride, instead of
keeping vbus always on for dr_mode as host mode, we wanted to implement
vbus control in dwc3-qcom.c based on top of [1]. In this patch, there is
set_role callback present to turn off/on the vbus. So after this patch
is merged, we wanted to implement vbus control and then flatten DT node
and then add vbus supply to glue node. Hence made peripheral only
dr_mode now.
[1]:
https://lore.kernel.org/all/20250812055542.1588528-3-krishna.kurapati@oss.qualcomm.com/
Regards,
Krishna,
>>
>>>>
>>>> a) dwc3 core callback registration by dwc3 glue driver; this change is under
>>>> review in upstream.
>>>> b) vbus supply enablement for host mode; this change is yet to be submitted
>>>> to upstream.
>>>>
>>>> Post the above mentioned driver changes, we are planning to enable OTG on
>>>> usb0.
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-08-27 1:35 ` Dmitry Baryshkov
` (2 preceding siblings ...)
2025-08-28 15:05 ` Monish Chunara
@ 2025-09-01 11:32 ` Vikash Garodia
3 siblings, 0 replies; 33+ messages in thread
From: Vikash Garodia @ 2025-09-01 11:32 UTC (permalink / raw)
To: Dmitry Baryshkov, Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Viken Dadhaniya, Sushrut Shree Trivedi, Nirmesh Kumar Singh,
Krishna Kurapati, Mohd Ayaan Anwar, Dikshita Agarwal,
Monish Chunara, Vishal Kumar Pal
On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
>> Enhance the Qualcomm Lemans EVK board file to support essential
>> peripherals and improve overall hardware capabilities, as
>> outlined below:
>> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
>> controllers to facilitate DMA and peripheral communication.
>> - Add support for PCIe-0/1, including required regulators and PHYs,
>> to enable high-speed external device connectivity.
>> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
>> GPIO lines for extended I/O functionality.
>> - Enable the USB0 controller in device mode to support USB peripheral
>> operations.
>> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
>> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
>> firmware.
>> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
>> and other consumers.
>> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
>> Ethernet MAC address via nvmem for network configuration.
>> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
>> - Add support for the Iris video decoder, including the required
>> firmware, to enable video decoding capabilities.
>> - Enable SD-card slot on SDHC.
>>
>> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
>> 1 file changed, 387 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index 9e415012140b..642b66c4ad1e 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -16,7 +16,10 @@ / {
>> compatible = "qcom,lemans-evk", "qcom,qcs9100", "qcom,sa8775p";
>>
>> aliases {
>> + ethernet0 = ðernet0;
>> + mmc1 = &sdhc;
>> serial0 = &uart10;
>> + serial1 = &uart17;
>> };
>>
>> chosen {
>> @@ -46,6 +49,30 @@ edp1_connector_in: endpoint {
>> };
>> };
>> };
>> +
>> + vmmc_sdc: regulator-vmmc-sdc {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vmmc_sdc";
>
> Non-switchable, always enabled?
>
>> +
>> + regulator-min-microvolt = <2950000>;
>> + regulator-max-microvolt = <2950000>;
>> + };
>> +
>> + vreg_sdc: regulator-vreg-sdc {
>> + compatible = "regulator-gpio";
>> +
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <2950000>;
>> + regulator-name = "vreg_sdc";
>> + regulator-type = "voltage";
>
> This one also can not be disabled?
>
>> +
>> + startup-delay-us = <100>;
>> +
>> + gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
>> +
>> + states = <1800000 0x1
>> + 2950000 0x0>;
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -277,6 +304,161 @@ vreg_l8e: ldo8 {
>> };
>> };
>>
>> +ðernet0 {
>> + phy-handle = <&hsgmii_phy0>;
>> + phy-mode = "2500base-x";
>> +
>> + pinctrl-0 = <ðernet0_default>;
>> + pinctrl-names = "default";
>> +
>> + snps,mtl-rx-config = <&mtl_rx_setup>;
>> + snps,mtl-tx-config = <&mtl_tx_setup>;
>> + snps,ps-speed = <1000>;
>> +
>> + nvmem-cells = <&mac_addr0>;
>> + nvmem-cell-names = "mac-address";
>> +
>> + status = "okay";
>> +
>> + mdio {
>> + compatible = "snps,dwmac-mdio";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + hsgmii_phy0: ethernet-phy@1c {
>> + compatible = "ethernet-phy-id004d.d101";
>> + reg = <0x1c>;
>> + reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
>> + reset-assert-us = <11000>;
>> + reset-deassert-us = <70000>;
>> + };
>> + };
>> +
>> + mtl_rx_setup: rx-queues-config {
>> + snps,rx-queues-to-use = <4>;
>> + snps,rx-sched-sp;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x0>;
>> + snps,route-up;
>> + snps,priority = <0x1>;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + snps,map-to-dma-channel = <0x1>;
>> + snps,route-ptp;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x2>;
>> + snps,route-avcp;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,map-to-dma-channel = <0x3>;
>> + snps,priority = <0xc>;
>> + };
>> + };
>> +
>> + mtl_tx_setup: tx-queues-config {
>> + snps,tx-queues-to-use = <4>;
>> +
>> + queue0 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue1 {
>> + snps,dcb-algorithm;
>> + };
>> +
>> + queue2 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> +
>> + queue3 {
>> + snps,avb-algorithm;
>> + snps,send_slope = <0x1000>;
>> + snps,idle_slope = <0x1000>;
>> + snps,high_credit = <0x3e800>;
>> + snps,low_credit = <0xffc18000>;
>> + };
>> + };
>> +};
>> +
>> +&gpi_dma0 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma1 {
>> + status = "okay";
>> +};
>> +
>> +&gpi_dma2 {
>> + status = "okay";
>> +};
>> +
>> +&i2c18 {
>> + status = "okay";
>> +
>> + expander0: pca953x@38 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x38>;
>> + };
>> +
>> + expander1: pca953x@39 {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x39>;
>> + };
>> +
>> + expander2: pca953x@3a {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3a>;
>> + };
>> +
>> + expander3: pca953x@3b {
>> + compatible = "ti,tca9538";
>> + #gpio-cells = <2>;
>> + gpio-controller;
>> + reg = <0x3b>;
>> + };
>> +
>> + eeprom@50 {
>> + compatible = "atmel,24c256";
>> + reg = <0x50>;
>> + pagesize = <64>;
>> +
>> + nvmem-layout {
>> + compatible = "fixed-layout";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + mac_addr0: mac-addr@0 {
>> + reg = <0x0 0x6>;
>> + };
>> + };
>> + };
>> +};
>> +
>> +&iris {
>> + firmware-name = "qcom/vpu/vpu30_p4_s6.mbn";
>
> Should it be just _s6.mbn or _s6_16mb.mbn?
_s6_16mb.mbn
>
>> +
>> + status = "okay";
>> +};
>> +
>> &mdss0 {
>> status = "okay";
>> };
>> @@ -323,14 +505,196 @@ &mdss0_dp1_phy {
>> status = "okay";
>> };
>>
>> +&pcie0 {
>> + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
>> + wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
>
> I think Mani has been asking lately to define these GPIOs inside the
> port rather than in the host controller.
>
>> +
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pcie0_default_state>;
>> +
>> + status = "okay";
>> +};
>> +
>
> [...]
>
>> @@ -356,6 +720,29 @@ &ufs_mem_phy {
>> status = "okay";
>> };
>>
>> +&usb_0 {
>> + status = "okay";
>> +};
>> +
>> +&usb_0_dwc3 {
>> + dr_mode = "peripheral";
>
> Is it actually peripheral-only?
>
>> +};
>> +
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-09-01 7:32 ` Krishna Kurapati PSSNV
@ 2025-09-02 2:34 ` Dmitry Baryshkov
2025-09-02 17:16 ` Dmitry Baryshkov
0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-09-02 2:34 UTC (permalink / raw)
To: Krishna Kurapati PSSNV
Cc: Monish Chunara, Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Viken Dadhaniya,
Nirmesh Kumar Singh, Mohd Ayaan Anwar, Dikshita Agarwal,
Vishal Kumar Pal
On Mon, Sep 01, 2025 at 01:02:15PM +0530, Krishna Kurapati PSSNV wrote:
>
>
> On 8/29/2025 9:54 PM, Dmitry Baryshkov wrote:
> > On Fri, Aug 29, 2025 at 07:50:57PM +0530, Monish Chunara wrote:
> > > On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
> > > > On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
> > > > >
> > > > > On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > > > > > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > > > > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > > > > > peripherals and improve overall hardware capabilities, as
> > > > > > > outlined below:
> > > > > > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > > > > > controllers to facilitate DMA and peripheral communication.
> > > > > > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > > > > > to enable high-speed external device connectivity.
> > > > > > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > > > > > GPIO lines for extended I/O functionality.
> > > > > > > - Enable the USB0 controller in device mode to support USB peripheral
> > > > > > > operations.
> > > > > > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > > > > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > > > > > firmware.
> > > > > > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > > > > > and other consumers.
> > > > > > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > > > > > Ethernet MAC address via nvmem for network configuration.
> > > > > > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > > > > > - Add support for the Iris video decoder, including the required
> > > > > > > firmware, to enable video decoding capabilities.
> > > > > > > - Enable SD-card slot on SDHC.
> > > > > > >
> > > > > > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > > > > > ---
> > > > > > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > > > > > 1 file changed, 387 insertions(+)
> > > > > > >
> > > > > >
> > > > > > > @@ -356,6 +720,29 @@ &ufs_mem_phy {
> > > > > > > status = "okay";
> > > > > > > };
> > > > > > > +&usb_0 {
> > > > > > > + status = "okay";
> > > > > > > +};
> > > > > > > +
> > > > > > > +&usb_0_dwc3 {
> > > > > > > + dr_mode = "peripheral";
> > > > > > Is it actually peripheral-only?
> > > > >
> > > > > Hi Dmitry,
> > > > >
> > > > > HW supports OTG mode also, but for enabling OTG we need below mentioned
> > > > > driver changes in dwc3-qcom.c :
> > > >
> > > > Is it the USB-C port? If so, then you should likely be using some form
> > > > of the Type-C port manager (in software or in hardware). These platforms
> > > > usually use pmic-glink in order to handle USB-C.
> > > >
> > > > Or is it micro-USB-OTG port?
> > > >
> > >
> > > Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
> > > controller for the same. Will be enabling relevant dts node as part of OTG
> > > enablement once driver changes are in place.
> >
> > Which controller are you using? In the existing designs USB-C works
> > without extra patches for the DWC3 controller.
> >
>
> Hi Dmitry,
>
> On EVK Platform, the VBUS is controlled by a GPIO from expander. Unlike in
> other platforms like SA8295 ADP, QCS8300 Ride, instead of keeping vbus
> always on for dr_mode as host mode, we wanted to implement vbus control in
> dwc3-qcom.c based on top of [1]. In this patch, there is set_role callback
> present to turn off/on the vbus. So after this patch is merged, we wanted to
> implement vbus control and then flatten DT node and then add vbus supply to
> glue node. Hence made peripheral only dr_mode now.
In such a case VBUS should be controlled by the USB-C controller rather
than DWC3. The reason is pretty simple: the power direction and data
direction are not 1:1 related anymore. The Type-C port manager decides
whether to supply power over USB-C / Vbus or not and (if supported)
which voltage to use. See TCPM's tcpc_dev::set_vbus().
>
> [1]: https://lore.kernel.org/all/20250812055542.1588528-3-krishna.kurapati@oss.qualcomm.com/
>
> Regards,
> Krishna,
>
> > >
> > > > >
> > > > > a) dwc3 core callback registration by dwc3 glue driver; this change is under
> > > > > review in upstream.
> > > > > b) vbus supply enablement for host mode; this change is yet to be submitted
> > > > > to upstream.
> > > > >
> > > > > Post the above mentioned driver changes, we are planning to enable OTG on
> > > > > usb0.
> >
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-09-02 2:34 ` Dmitry Baryshkov
@ 2025-09-02 17:16 ` Dmitry Baryshkov
2025-09-03 9:12 ` Krishna Kurapati PSSNV
0 siblings, 1 reply; 33+ messages in thread
From: Dmitry Baryshkov @ 2025-09-02 17:16 UTC (permalink / raw)
To: Krishna Kurapati PSSNV
Cc: Monish Chunara, Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Viken Dadhaniya,
Nirmesh Kumar Singh, Mohd Ayaan Anwar, Dikshita Agarwal,
Vishal Kumar Pal
On Tue, Sep 02, 2025 at 05:34:27AM +0300, Dmitry Baryshkov wrote:
> On Mon, Sep 01, 2025 at 01:02:15PM +0530, Krishna Kurapati PSSNV wrote:
> >
> >
> > On 8/29/2025 9:54 PM, Dmitry Baryshkov wrote:
> > > On Fri, Aug 29, 2025 at 07:50:57PM +0530, Monish Chunara wrote:
> > > > On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
> > > > > On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
> > > > > >
> > > > > > On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
> > > > > > > On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
> > > > > > > > Enhance the Qualcomm Lemans EVK board file to support essential
> > > > > > > > peripherals and improve overall hardware capabilities, as
> > > > > > > > outlined below:
> > > > > > > > - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
> > > > > > > > controllers to facilitate DMA and peripheral communication.
> > > > > > > > - Add support for PCIe-0/1, including required regulators and PHYs,
> > > > > > > > to enable high-speed external device connectivity.
> > > > > > > > - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
> > > > > > > > GPIO lines for extended I/O functionality.
> > > > > > > > - Enable the USB0 controller in device mode to support USB peripheral
> > > > > > > > operations.
> > > > > > > > - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
> > > > > > > > Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
> > > > > > > > firmware.
> > > > > > > > - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
> > > > > > > > and other consumers.
> > > > > > > > - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
> > > > > > > > Ethernet MAC address via nvmem for network configuration.
> > > > > > > > It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
> > > > > > > > - Add support for the Iris video decoder, including the required
> > > > > > > > firmware, to enable video decoding capabilities.
> > > > > > > > - Enable SD-card slot on SDHC.
> > > > > > > >
> > > > > > > > Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > > > > Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
> > > > > > > > Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > > > > Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
> > > > > > > > Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > > > > Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
> > > > > > > > Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > > > > Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> > > > > > > > Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > > > > Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
> > > > > > > > Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > > > > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> > > > > > > > Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > > > > Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> > > > > > > > Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > > > > Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
> > > > > > > > Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> > > > > > > > ---
> > > > > > > > arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
> > > > > > > > 1 file changed, 387 insertions(+)
> > > > > > > >
> > > > > > >
> > > > > > > > @@ -356,6 +720,29 @@ &ufs_mem_phy {
> > > > > > > > status = "okay";
> > > > > > > > };
> > > > > > > > +&usb_0 {
> > > > > > > > + status = "okay";
> > > > > > > > +};
> > > > > > > > +
> > > > > > > > +&usb_0_dwc3 {
> > > > > > > > + dr_mode = "peripheral";
> > > > > > > Is it actually peripheral-only?
> > > > > >
> > > > > > Hi Dmitry,
> > > > > >
> > > > > > HW supports OTG mode also, but for enabling OTG we need below mentioned
> > > > > > driver changes in dwc3-qcom.c :
> > > > >
> > > > > Is it the USB-C port? If so, then you should likely be using some form
> > > > > of the Type-C port manager (in software or in hardware). These platforms
> > > > > usually use pmic-glink in order to handle USB-C.
> > > > >
> > > > > Or is it micro-USB-OTG port?
> > > > >
> > > >
> > > > Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
> > > > controller for the same. Will be enabling relevant dts node as part of OTG
> > > > enablement once driver changes are in place.
> > >
> > > Which controller are you using? In the existing designs USB-C works
> > > without extra patches for the DWC3 controller.
> > >
> >
> > Hi Dmitry,
> >
> > On EVK Platform, the VBUS is controlled by a GPIO from expander. Unlike in
> > other platforms like SA8295 ADP, QCS8300 Ride, instead of keeping vbus
> > always on for dr_mode as host mode, we wanted to implement vbus control in
> > dwc3-qcom.c based on top of [1]. In this patch, there is set_role callback
> > present to turn off/on the vbus. So after this patch is merged, we wanted to
> > implement vbus control and then flatten DT node and then add vbus supply to
> > glue node. Hence made peripheral only dr_mode now.
>
> In such a case VBUS should be controlled by the USB-C controller rather
> than DWC3. The reason is pretty simple: the power direction and data
> direction are not 1:1 related anymore. The Type-C port manager decides
> whether to supply power over USB-C / Vbus or not and (if supported)
> which voltage to use. See TCPM's tcpc_dev::set_vbus().
Okay, your Type-C manager is HD3SS3220. It drives ID pin low if the VBUS
supply should be enabled. Please enhance the driver with this
functionality. You cann't use the USB role status since it doesn't
perform VSafe0V checks.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support
2025-09-02 17:16 ` Dmitry Baryshkov
@ 2025-09-03 9:12 ` Krishna Kurapati PSSNV
0 siblings, 0 replies; 33+ messages in thread
From: Krishna Kurapati PSSNV @ 2025-09-03 9:12 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Monish Chunara, Sushrut Shree Trivedi, Wasim Nazir, Ulf Hansson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio, Richard Cochran, kernel, linux-mmc, devicetree,
linux-kernel, linux-arm-msm, netdev, Viken Dadhaniya,
Nirmesh Kumar Singh, Mohd Ayaan Anwar, Dikshita Agarwal,
Vishal Kumar Pal
On 9/2/2025 10:46 PM, Dmitry Baryshkov wrote:
> On Tue, Sep 02, 2025 at 05:34:27AM +0300, Dmitry Baryshkov wrote:
>> On Mon, Sep 01, 2025 at 01:02:15PM +0530, Krishna Kurapati PSSNV wrote:
>>>
>>>
>>> On 8/29/2025 9:54 PM, Dmitry Baryshkov wrote:
>>>> On Fri, Aug 29, 2025 at 07:50:57PM +0530, Monish Chunara wrote:
>>>>> On Thu, Aug 28, 2025 at 04:30:00PM +0300, Dmitry Baryshkov wrote:
>>>>>> On Thu, Aug 28, 2025 at 06:38:03PM +0530, Sushrut Shree Trivedi wrote:
>>>>>>>
>>>>>>> On 8/27/2025 7:05 AM, Dmitry Baryshkov wrote:
>>>>>>>> On Tue, Aug 26, 2025 at 11:51:02PM +0530, Wasim Nazir wrote:
>>>>>>>>> Enhance the Qualcomm Lemans EVK board file to support essential
>>>>>>>>> peripherals and improve overall hardware capabilities, as
>>>>>>>>> outlined below:
>>>>>>>>> - Enable GPI (Generic Peripheral Interface) DMA-0/1/2 and QUPv3-0/2
>>>>>>>>> controllers to facilitate DMA and peripheral communication.
>>>>>>>>> - Add support for PCIe-0/1, including required regulators and PHYs,
>>>>>>>>> to enable high-speed external device connectivity.
>>>>>>>>> - Integrate the TCA9534 I/O expander via I2C to provide 8 additional
>>>>>>>>> GPIO lines for extended I/O functionality.
>>>>>>>>> - Enable the USB0 controller in device mode to support USB peripheral
>>>>>>>>> operations.
>>>>>>>>> - Activate remoteproc subsystems for supported DSPs such as Audio DSP,
>>>>>>>>> Compute DSP-0/1 and Generic DSP-0/1, along with their corresponding
>>>>>>>>> firmware.
>>>>>>>>> - Configure nvmem-layout on the I2C EEPROM to store data for Ethernet
>>>>>>>>> and other consumers.
>>>>>>>>> - Enable the QCA8081 2.5G Ethernet PHY on port-0 and expose the
>>>>>>>>> Ethernet MAC address via nvmem for network configuration.
>>>>>>>>> It depends on CONFIG_QCA808X_PHY to use QCA8081 PHY.
>>>>>>>>> - Add support for the Iris video decoder, including the required
>>>>>>>>> firmware, to enable video decoding capabilities.
>>>>>>>>> - Enable SD-card slot on SDHC.
>>>>>>>>>
>>>>>>>>> Co-developed-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>>>>>>>>> Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
>>>>>>>>> Co-developed-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>>>>>>>>> Signed-off-by: Sushrut Shree Trivedi <quic_sushruts@quicinc.com>
>>>>>>>>> Co-developed-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>>>>>>>>> Signed-off-by: Nirmesh Kumar Singh <quic_nkumarsi@quicinc.com>
>>>>>>>>> Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>>>>>>>>> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
>>>>>>>>> Co-developed-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>>>>>>>>> Signed-off-by: Mohd Ayaan Anwar <quic_mohdayaa@quicinc.com>
>>>>>>>>> Co-developed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>>>>>>>>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>>>>>>>>> Co-developed-by: Monish Chunara <quic_mchunara@quicinc.com>
>>>>>>>>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>>>>>>>>> Co-developed-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>>>>>>>>> Signed-off-by: Vishal Kumar Pal <quic_vispal@quicinc.com>
>>>>>>>>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>>>>>>>>> ---
>>>>>>>>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 387 ++++++++++++++++++++++++++++++++
>>>>>>>>> 1 file changed, 387 insertions(+)
>>>>>>>>>
>>>>>>>>
>>>>>>>>> @@ -356,6 +720,29 @@ &ufs_mem_phy {
>>>>>>>>> status = "okay";
>>>>>>>>> };
>>>>>>>>> +&usb_0 {
>>>>>>>>> + status = "okay";
>>>>>>>>> +};
>>>>>>>>> +
>>>>>>>>> +&usb_0_dwc3 {
>>>>>>>>> + dr_mode = "peripheral";
>>>>>>>> Is it actually peripheral-only?
>>>>>>>
>>>>>>> Hi Dmitry,
>>>>>>>
>>>>>>> HW supports OTG mode also, but for enabling OTG we need below mentioned
>>>>>>> driver changes in dwc3-qcom.c :
>>>>>>
>>>>>> Is it the USB-C port? If so, then you should likely be using some form
>>>>>> of the Type-C port manager (in software or in hardware). These platforms
>>>>>> usually use pmic-glink in order to handle USB-C.
>>>>>>
>>>>>> Or is it micro-USB-OTG port?
>>>>>>
>>>>>
>>>>> Yes, it is a USB Type-C port for usb0 and we are using a 3rd party Type-C port
>>>>> controller for the same. Will be enabling relevant dts node as part of OTG
>>>>> enablement once driver changes are in place.
>>>>
>>>> Which controller are you using? In the existing designs USB-C works
>>>> without extra patches for the DWC3 controller.
>>>>
>>>
>>> Hi Dmitry,
>>>
>>> On EVK Platform, the VBUS is controlled by a GPIO from expander. Unlike in
>>> other platforms like SA8295 ADP, QCS8300 Ride, instead of keeping vbus
>>> always on for dr_mode as host mode, we wanted to implement vbus control in
>>> dwc3-qcom.c based on top of [1]. In this patch, there is set_role callback
>>> present to turn off/on the vbus. So after this patch is merged, we wanted to
>>> implement vbus control and then flatten DT node and then add vbus supply to
>>> glue node. Hence made peripheral only dr_mode now.
>>
>> In such a case VBUS should be controlled by the USB-C controller rather
>> than DWC3. The reason is pretty simple: the power direction and data
>> direction are not 1:1 related anymore. The Type-C port manager decides
>> whether to supply power over USB-C / Vbus or not and (if supported)
>> which voltage to use. See TCPM's tcpc_dev::set_vbus().
>
> Okay, your Type-C manager is HD3SS3220. It drives ID pin low if the VBUS
> supply should be enabled. Please enhance the driver with this
> functionality. You cann't use the USB role status since it doesn't
> perform VSafe0V checks.
>
Hi Dmitry,
Thanks for the suggestion. Sure, will take up the task of implementing
vbus supply based on id-pin in hd3 driver.
Also, will move to otg once that is implemented in port controller
driver. Will keep it in device mode for now in this series (or its
further revision). Also will make sure to document it in commit text in
next revision.
Regards,
krishna,
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-08-27 1:20 ` Dmitry Baryshkov
2025-08-28 14:57 ` Monish Chunara
@ 2025-09-03 16:12 ` Konrad Dybcio
2025-09-03 16:28 ` Wasim Nazir
1 sibling, 1 reply; 33+ messages in thread
From: Konrad Dybcio @ 2025-09-03 16:12 UTC (permalink / raw)
To: Dmitry Baryshkov, Wasim Nazir
Cc: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio, Richard Cochran, kernel,
linux-mmc, devicetree, linux-kernel, linux-arm-msm, netdev,
Monish Chunara
On 8/27/25 3:20 AM, Dmitry Baryshkov wrote:
> On Tue, Aug 26, 2025 at 11:51:01PM +0530, Wasim Nazir wrote:
>> From: Monish Chunara <quic_mchunara@quicinc.com>
>>
>> Introduce the SDHC v5 controller node for the Lemans platform.
>> This controller supports either eMMC or SD-card, but only one
>> can be active at a time. SD-card is the preferred configuration
>> on Lemans targets, so describe this controller.
>>
>> Define the SDC interface pins including clk, cmd, and data lines
>> to enable proper communication with the SDHC controller.
>>
>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>> Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 70 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> index 99a566b42ef2..a5a3cdba47f3 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> @@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
>> };
>> };
>>
>> + sdhc: mmc@87c4000 {
>> + compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
>> + reg = <0x0 0x087c4000 0x0 0x1000>;
>> +
>> + interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-names = "hc_irq", "pwr_irq";
>> +
>> + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
>> + <&gcc GCC_SDCC1_APPS_CLK>;
>> + clock-names = "iface", "core";
>> +
>> + interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
>> + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
>> + interconnect-names = "sdhc-ddr", "cpu-sdhc";
>> +
>> + iommus = <&apps_smmu 0x0 0x0>;
>> + dma-coherent;
>> +
>> + resets = <&gcc GCC_SDCC1_BCR>;
>> +
>> + no-sdio;
>> + no-mmc;
>> + bus-width = <4>;
>
> This is the board configuration, it should be defined in the EVK DTS.
Unless the controller is actually incapable of doing non-SDCards
But from the limited information I can find, this one should be able
to do both
Konrad
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-09-03 16:12 ` Konrad Dybcio
@ 2025-09-03 16:28 ` Wasim Nazir
2025-09-03 17:16 ` Konrad Dybcio
0 siblings, 1 reply; 33+ messages in thread
From: Wasim Nazir @ 2025-09-03 16:28 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Dmitry Baryshkov, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Monish Chunara
On Wed, Sep 03, 2025 at 06:12:59PM +0200, Konrad Dybcio wrote:
> On 8/27/25 3:20 AM, Dmitry Baryshkov wrote:
> > On Tue, Aug 26, 2025 at 11:51:01PM +0530, Wasim Nazir wrote:
> >> From: Monish Chunara <quic_mchunara@quicinc.com>
> >>
> >> Introduce the SDHC v5 controller node for the Lemans platform.
> >> This controller supports either eMMC or SD-card, but only one
> >> can be active at a time. SD-card is the preferred configuration
> >> on Lemans targets, so describe this controller.
> >>
> >> Define the SDC interface pins including clk, cmd, and data lines
> >> to enable proper communication with the SDHC controller.
> >>
> >> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
> >> Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> >> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> >> ---
> >> arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
> >> 1 file changed, 70 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> >> index 99a566b42ef2..a5a3cdba47f3 100644
> >> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> >> @@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
> >> };
> >> };
> >>
> >> + sdhc: mmc@87c4000 {
> >> + compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
> >> + reg = <0x0 0x087c4000 0x0 0x1000>;
> >> +
> >> + interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
> >> + <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
> >> + interrupt-names = "hc_irq", "pwr_irq";
> >> +
> >> + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
> >> + <&gcc GCC_SDCC1_APPS_CLK>;
> >> + clock-names = "iface", "core";
> >> +
> >> + interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
> >> + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
> >> + interconnect-names = "sdhc-ddr", "cpu-sdhc";
> >> +
> >> + iommus = <&apps_smmu 0x0 0x0>;
> >> + dma-coherent;
> >> +
> >> + resets = <&gcc GCC_SDCC1_BCR>;
> >> +
> >> + no-sdio;
> >> + no-mmc;
> >> + bus-width = <4>;
> >
> > This is the board configuration, it should be defined in the EVK DTS.
>
> Unless the controller is actually incapable of doing non-SDCards
>
> But from the limited information I can find, this one should be able
> to do both
>
It’s doable, but the bus width differs when this controller is used for
eMMC, which is supported on the Mezz board. So, it’s cleaner to define
only what’s needed for each specific usecase on the board.
--
Regards,
Wasim
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration
2025-09-03 16:28 ` Wasim Nazir
@ 2025-09-03 17:16 ` Konrad Dybcio
0 siblings, 0 replies; 33+ messages in thread
From: Konrad Dybcio @ 2025-09-03 17:16 UTC (permalink / raw)
To: Wasim Nazir
Cc: Dmitry Baryshkov, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio, Richard Cochran,
kernel, linux-mmc, devicetree, linux-kernel, linux-arm-msm,
netdev, Monish Chunara
On 9/3/25 6:28 PM, Wasim Nazir wrote:
> On Wed, Sep 03, 2025 at 06:12:59PM +0200, Konrad Dybcio wrote:
>> On 8/27/25 3:20 AM, Dmitry Baryshkov wrote:
>>> On Tue, Aug 26, 2025 at 11:51:01PM +0530, Wasim Nazir wrote:
>>>> From: Monish Chunara <quic_mchunara@quicinc.com>
>>>>
>>>> Introduce the SDHC v5 controller node for the Lemans platform.
>>>> This controller supports either eMMC or SD-card, but only one
>>>> can be active at a time. SD-card is the preferred configuration
>>>> on Lemans targets, so describe this controller.
>>>>
>>>> Define the SDC interface pins including clk, cmd, and data lines
>>>> to enable proper communication with the SDHC controller.
>>>>
>>>> Signed-off-by: Monish Chunara <quic_mchunara@quicinc.com>
>>>> Co-developed-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>>>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/lemans.dtsi | 70 ++++++++++++++++++++++++++++++++++++
>>>> 1 file changed, 70 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
>>>> index 99a566b42ef2..a5a3cdba47f3 100644
>>>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
>>>> @@ -3834,6 +3834,36 @@ apss_tpdm2_out: endpoint {
>>>> };
>>>> };
>>>>
>>>> + sdhc: mmc@87c4000 {
>>>> + compatible = "qcom,sa8775p-sdhci", "qcom,sdhci-msm-v5";
>>>> + reg = <0x0 0x087c4000 0x0 0x1000>;
>>>> +
>>>> + interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
>>>> + <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH>;
>>>> + interrupt-names = "hc_irq", "pwr_irq";
>>>> +
>>>> + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
>>>> + <&gcc GCC_SDCC1_APPS_CLK>;
>>>> + clock-names = "iface", "core";
>>>> +
>>>> + interconnects = <&aggre1_noc MASTER_SDC 0 &mc_virt SLAVE_EBI1 0>,
>>>> + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDC1 0>;
>>>> + interconnect-names = "sdhc-ddr", "cpu-sdhc";
>>>> +
>>>> + iommus = <&apps_smmu 0x0 0x0>;
>>>> + dma-coherent;
>>>> +
>>>> + resets = <&gcc GCC_SDCC1_BCR>;
>>>> +
>>>> + no-sdio;
>>>> + no-mmc;
>>>> + bus-width = <4>;
>>>
>>> This is the board configuration, it should be defined in the EVK DTS.
>>
>> Unless the controller is actually incapable of doing non-SDCards
>>
>> But from the limited information I can find, this one should be able
>> to do both
>>
>
> It’s doable, but the bus width differs when this controller is used for
> eMMC, which is supported on the Mezz board. So, it’s cleaner to define
> only what’s needed for each specific usecase on the board.
If SD Card is the predominately expected use case, I'm fine with keeping
4 default (in the SoC DTSI) with the odd user overriding that
Konrad
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2025-09-03 17:16 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-26 18:20 [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Wasim Nazir
2025-08-26 18:21 ` [PATCH 1/5] dt-bindings: mmc: sdhci-msm: Document the Lemans compatible Wasim Nazir
2025-08-27 1:19 ` Dmitry Baryshkov
2025-08-28 14:54 ` Monish Chunara
2025-08-26 18:21 ` [PATCH 2/5] arm64: dts: qcom: lemans: Add SDHC controller and SDC pin configuration Wasim Nazir
2025-08-27 1:20 ` Dmitry Baryshkov
2025-08-28 14:57 ` Monish Chunara
2025-09-03 16:12 ` Konrad Dybcio
2025-09-03 16:28 ` Wasim Nazir
2025-09-03 17:16 ` Konrad Dybcio
2025-08-26 18:21 ` [PATCH 3/5] arm64: dts: qcom: lemans-evk: Extend peripheral and subsystem support Wasim Nazir
2025-08-27 1:35 ` Dmitry Baryshkov
2025-08-28 6:35 ` Sushrut Shree Trivedi
2025-08-28 11:01 ` Dmitry Baryshkov
2025-08-28 13:08 ` Sushrut Shree Trivedi
2025-08-28 13:30 ` Dmitry Baryshkov
2025-08-29 14:20 ` Monish Chunara
2025-08-29 16:24 ` Dmitry Baryshkov
2025-09-01 7:32 ` Krishna Kurapati PSSNV
2025-09-02 2:34 ` Dmitry Baryshkov
2025-09-02 17:16 ` Dmitry Baryshkov
2025-09-03 9:12 ` Krishna Kurapati PSSNV
2025-08-28 15:05 ` Monish Chunara
2025-09-01 11:32 ` Vikash Garodia
2025-08-27 23:06 ` Bjorn Andersson
2025-08-28 12:23 ` Wasim Nazir
2025-08-28 6:56 ` Krzysztof Kozlowski
2025-08-28 15:15 ` Wasim Nazir
2025-08-26 18:21 ` [PATCH 4/5] arm64: dts: qcom: lemans: Add gpr node Wasim Nazir
2025-08-26 18:21 ` [PATCH 5/5] arm64: dts: qcom: lemans-evk: Add sound card Wasim Nazir
2025-08-27 23:07 ` Bjorn Andersson
2025-08-28 16:21 ` Mohammad Rafi Shaik
2025-08-26 23:19 ` [PATCH 0/5] arm64: dts: qcom: lemans-evk: Extend board support for additional peripherals Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).