Repository navigation
Conversation
Add the compatible string for the Qualcomm LeMans Draco EVK board (SA8775P/QCS9100 SoC). The compatible chain is: qcom,lemans-draco-evk qcom,lemans-draco-evk-som qcom,qcs9100 qcom,sa8775p Signed-off-by: Gopikishan Thawre <gthawre@qti.qualcomm.com>
Add build entry for the LeMans Draco EVK board DTB. Signed-off-by: Gopikishan Thawre <gthawre@qti.qualcomm.com>
Add device tree for the LeMans Draco EVK System-on-Module (SOM) based on the SA8775P/QCS9100 SoC. The SOM includes: - Complete RPMH regulator configuration for three pmm8654au PMICs: pmic-id a: smps4/5/9 and ldo4/5/6/7/8/9 pmic-id c: ldo1/2/3/4/5/6/7/8/9 pmic-id e: smps4/7/9 and ldo6/8 - Firmware paths for QUP firmware and remote processors (ADSP, CDSP0) - Debug UART (uart0) - XO board clock at 38.4 MHz, sleep clock at 32.768 kHz Signed-off-by: Gopikishan Thawre <gthawre@qti.qualcomm.com>
Add top-level board device tree and extend the SOM DTSI with peripherals for the Qualcomm LeMans Draco EVK carrier board: - Five I2C GPIO expanders on i2c2: four TCA6416-compatible at 0x20-0x23 (U236, U238, U422, U417) for camera/display MUX and power enables, one PCA9534-compatible (U445) at 0x38 for camera MCLK enables - EEPROM (U?,giantec,gt24c256c) at 0x50 with MAC address nvmem layout - uart10 as the geni-debug-uart (console) - ufs_mem_hc and ufs_mem_phy with regulator assignments - USB nodes: usb_0, usb_0_hsphy, usb_0_qmpphy, usb_2 and usb_2_hsphy - pmm8654au_2 GPIO states for USB interrupt and ID lines - Remoteproc SMMU stream IDs for ADSP, CDSP0/1, GPDSP0/1 - Correct mmc1 alias (was mmc0); serial0 -> uart10, serial2 -> uart0 - Remove pcie0, pcie1 and ethernet0 -- not present on this board Signed-off-by: Gopikishan Thawre <gthawre@qti.qualcomm.com>
Enable PCIe0 and PCIe1 on the Lemans based Draco EVK platform. PCIe0 connects to the NTN3 switch while PCIe1 can be routed either to an x4 slot or M.2 M-key slot based on dip switches configuration. Upstream-Status: Pending Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
…_config_sid_1_9_0()
qcom_pcie_config_sid_1_9_0() reads the "iommu-map" property as an array
of fixed four-word {rid-base, phandle, sid, rid-len} entries to program
the BDF to SID translation table. But that layout only holds for an
IOMMU with '#iommu-cells = <1>'. The PCIe SMMUs on these SoCs use
'#iommu-cells = <2>' (SID and mask), so per the pci-iommu binding each
entry is really five cells long.
This used to work only because the DTs were themselves broken. They
described iommu-map with four-cell entries that omitted the SID mask,
which of_map_id() tolerated via its of_check_bad_map() fallback, and the
four-word parsing coincidentally matched that malformed shape.
Since commit ccb2fd7 ("of: Respect #{iommu,msi}-cells in maps") the
OF core parses such maps correctly, so the device trees were converted
to proper five-cell entries, e.g. commit c41749e ("arm64: dts:
qcom: sm8250: Fix the PCIe iommu-map entries"). With five-cell entries
the fixed four-word stride slips by one cell for each entry after the
first, so qcom_pcie_config_sid_1_9_0() reads the endpoint mapping's RID
from the preceding entry's length cell and its SID from the phandle cell.
As the RID is the hash key, the endpoint's real RID is never programmed
into the BDF to SID table. Its DMA then hashes to an unprogrammed slot,
gets tagged with SID 0 and the SMMU faults like below on QCS8300:
arm-smmu 15200000.iommu: Unhandled context fault: fsr=0x402, iova=0xffa00000, cbfrsynra=0x0, cb=1
To fix this, walk the map with a stride of 3 + '#iommu-cells' of the
referenced IOMMU and take the SID from the first specifier cell, which is
all the BDF to SID table needs. Validate the layout instead of trusting
the array size. Also, preserve the legacy behavior of the old DTs by
detecting the same pattern that of_check_bad_map() recognizes and
falling back to a stride of four.
Fixes: 4c93988 ("PCI: qcom: Add support for configuring BDF to SID mapping for SM8250")
Reported-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260907143349.317495-1-mani@kernel.org
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
Upstream-Status: Pending
Enable the M.2 E-key connectivity slot on Lemans Draco EVK by describing its always-on 3.3 V supply and PCIe and UART graph connections. Describe W_DISABLE2# so pwrseq-pcie-m2 can control Bluetooth power through UART17. Upstream-Status: Pending Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
…e support Enable the MDSS display subsystem on the Qualcomm Lemans Draco EVK board and add the Lontium LT9611UXD DSI-to-HDMI bridge node. Signed-off-by: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
Enabled Native DP0, DP1, DP2, DP3 support for Lemans Draco EVK. Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
Enable GPU for lemans-draco-evk-som platform. Signed-off-by: Kishor Buchi <kbuchi@qti.qualcomm.com>
…rlay Add lemans-draco-evk-raspberrypi-dsi-7inch.dtso to drive the 22-pin Raspberry Pi 7" DSI touchscreen off DSI0, as an alternative to the onboard LT9611UXD HDMI bridge that the two paths mutually exclusively share. Label the base dts's hdmi-connector node so the overlay can disable it. Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
Add an overlay for the Waveshare 8" DSI touchscreen panel, The panel and its Goodix touch controller sit behind a waveshare,dsi-touch-gpio GPIO expander on the i2c1 mux channel shared with the LT9611UXD HDMI bridge, so the bridge and HDMI connector are disabled when this overlay is applied. Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
Add an overlay for the DLC0697 6.97" 1080x1920 MIPI-DSI video-mode panel on the DLC display daughter card. The card plugs into the display B2B connector shared with the LT9611UXD HDMI bridge, so the bridge and HDMI connector are disabled when this overlay is applied. DSI0 must be routed to the B2B connector with DIPSW2.4 set to ON. Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
Add an overlay for the AUO G133HAN01 13.3" 1920x1080 LVDS display panel. The panel is attached through a TI SN65DSI83 DSI-to-LVDS bridge daughter card connected to the display B2B connector shared with the LT9611UXD HDMI bridge, so the bridge and HDMI connector are disabled when this overlay is applied. Configure the HAT I2C pins required by the bridge and enable PCA9685 PWM backlight support for panel brightness control. Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
|
|
||
| &hdmi_connector { | ||
| status = "disabled"; | ||
| }; |
| #include <dt-bindings/interrupt-controller/irq.h> | ||
|
|
||
| &{/} { | ||
| vreg_disp0_bl_en: regulator-disp0-bl-en { |
There was a problem hiding this comment.
-
The base DT has no backlight-enable supply for display 0. It only has vreg_bridge_1p2 and vreg_bridge_3p3, and both are on expander2 P0_1.
-
The backlight enable is a different line: expander2 P0_2 → DISP0_BL_EN → PDISP1 pin 51 → LED_BACKLIGHT_EN. So reusing vreg_bridge_3p3 would not control the backlight.
| }; | ||
| }; | ||
|
|
||
| &vreg_bridge_1p2 { |
There was a problem hiding this comment.
-
Both bridge rails (vreg_bridge_1p2, vreg_bridge_3p3) are enabled by the same signal, expander2 P0_1, and the base DT gives both gpio = <&expander2 1 …>.
-
Two consumers of one GPIO go through gpio-shared-proxy. When both probe before the line has been set as an output, the proxy refuses with -EPERM. Both regulators then fail, the pca9548 mux defers, and the bridge never probes. Whether it fails depends on probe order, and I saw it on a cold boot.
-
Chaining 1.2 V from 3.3 V (vin-supply, no GPIO) describes the hardware correctly and fixed it.
There was a problem hiding this comment.
why this is a problem for LVDS are you using this supply for LVDS ?
There was a problem hiding this comment.
No. LVDS uses vreg_bridge_3p3 for the SN65DSI84 vcc. vreg_bridge_1p2 is used only by the HDMI bridge, which the overlay disables.
-
Both regulators claim expander2 P0_1.
-
regulator-fixed nodes probe even when nothing uses them. If the two collide, gpio-shared-proxy can reject the 3.3 V claim too (-EPERM), and that breaks the bridge.
-
So the override isn't about the 1.2 V rail; it protects the 3.3 V that LVDS needs.
However, we can use below:
&vreg_bridge_1p2 {
status = "disabled";
};
but I need to test this.
There was a problem hiding this comment.
In that case it needs to be fixed in base DT for HDMI
Add an overlay for the AUO G133HAN01 13.3" 1920x1080 LVDS display
panel.
The panel is attached through a TI SN65DSI83 DSI-to-LVDS bridge
daughter card connected to the display B2B connector shared with
the LT9611UXD HDMI bridge, so the bridge and HDMI connector are
disabled when this overlay is applied.
Configure the HAT I2C pins required by the bridge and
enable PCA9685 PWM support for panel backlight control.