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]> Reviewed-by: Dmitry Baryshkov <[email protected]> Signed-off-by: Antony Kurniawan Soemardi <[email protected]> --- arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 87 ++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi index fdc060df4544..093c24c47fd6 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 { @@ -321,6 +326,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"; @@ -460,6 +493,60 @@ saw1_vreg: regulator { }; }; + riva: riva-pil@3200800 { + compatible = "qcom,riva-pil"; + reg = <0x03200800 0x1000>, + <0x03202000 0x2000>, + <0x03204000 0x100>; + reg-names = "ccu", + "dxe", + "pmu"; + pinctrl-0 = <&riva_wlan_default_state>, <&riva_bt_default_state>; + pinctrl-1 = <&riva_wlan_sleep_state>, <&riva_bt_sleep_state>; + pinctrl-names = "default", "sleep"; + 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

