From: Antony Kurniawan Soemardi <[email protected]> Add the Riva Peripheral Image Loader node to support the Wireless Connectivity and Networking Subsystem on MSM8960. This includes:
- Reserved memory region for WCNSS firmware - WCN3660 iris radio controller - Bluetooth and Wi-Fi sub-devices exposed via the SMD edge - Pinctrl states for Bluetooth and Wi-Fi power management Tested-by: Rudraksha Gupta <[email protected]> Signed-off-by: Antony Kurniawan Soemardi <[email protected]> --- arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 78 ++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi index 107c5613aa4a..6bf36f35e5e3 100644 --- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi +++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi @@ -100,6 +100,11 @@ smem_region: smem@80000000 { reg = <0x80000000 0x200000>; no-map; }; + + wcnss_mem: wcnss@8f000000 { + reg = <0x8f000000 0x700000>; + no-map; + }; }; smem { @@ -317,6 +322,34 @@ i2c12-pins { }; }; + riva_bt_default_state: riva-bt-active-state { + pins = "gpio28", "gpio29"; + function = "bt"; + drive-strength = <2>; + bias-disable; + }; + + riva_bt_sleep_state: riva-bt-sleep-state { + pins = "gpio28", "gpio29"; + function = "bt"; + drive-strength = <2>; + bias-pull-down; + }; + + riva_wlan_default_state: riva-wlan-active-state { + pins = "gpio84", "gpio85", "gpio86", "gpio87", "gpio88"; + function = "wlan"; + drive-strength = <6>; + bias-pull-down; + }; + + riva_wlan_sleep_state: riva-wlan-sleep-state { + pins = "gpio84", "gpio85", "gpio86", "gpio87", "gpio88"; + function = "wlan"; + drive-strength = <2>; + bias-pull-up; + }; + sdcc3_default_state: sdcc3-default-state { clk-pins { pins = "sdc3_clk"; @@ -456,6 +489,51 @@ saw1_vreg: regulator { }; }; + riva: riva-pil@3200800 { + compatible = "qcom,riva-pil"; + reg = <0x03200800 0x1000>, <0x03202000 0x2000>, <0x03204000 0x100>; + reg-names = "ccu", "dxe", "pmu"; + interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal"; + memory-region = <&wcnss_mem>; + + status = "disabled"; + + iris { + compatible = "qcom,wcn3660"; + clocks = <&cxo_board>; + clock-names = "xo"; + }; + + smd-edge { + interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>; + label = "riva"; + qcom,ipc = <&l2cc 8 25>; + qcom,smd-edge = <6>; + + wcnss { + compatible = "qcom,wcnss"; + qcom,smd-channels = "WCNSS_CTRL"; + qcom,mmio = <&riva>; + + bluetooth { + compatible = "qcom,wcnss-bt"; + }; + + wifi { + compatible = "qcom,wcnss-wlan"; + interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "tx", "rx"; + qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; + qcom,smem-state-names = "tx-enable", + "tx-rings-empty"; + }; + }; + }; + }; + clock-controller@4000000 { compatible = "qcom,mmcc-msm8960"; reg = <0x4000000 0x1000>; -- 2.34.1

