* Qualcomm Technologies Inc. NSS HLOS Platform Driver. This driver communicates with the NSS Firmware, and provides empty buffers for packet-processing to the UBI32 processor. It also keeps track of sync packets from NSS Firmware. This driver has 2 sections listed below, one common to all the UBI32 cores and other specific to each UBI32 core. 1. Driver access details specific to each UBI32/NSS core. Required properties: - compatible: "qcom,nss" - interrupts: UBI32 to Apps interrupts for Sync/Data Packets and Empty Buffers. - reg-names: Indicates various resources passed to driver by name. "nphys","vphys" Refers to TCM and CSM Base Addresses of UBI32 Memory map. - reg: physical address and length of the register set for the device. - qcom,id: Unique Identifier for the HLOS block.This field is unique identifier for the core, which is also used as an index for global nss context. - clocks: physical address for NSS source clock, TCM clock and fabric clock. - resets: physical address for core clock reset, AHB and AXI reset. - qcom,load-addr: physical address to load NSS firmware. - qcom,num-queue: how many UBI32 to Apps queue enabled. - qcom,turbo-frequency = turbo freq supported or not. - qcom,low-frequency = lowest supported operating frequency. - qcom,mid-frequency = nominal supported operating frequency. - qcom,max-frequency = maximum supported operating frequency. Optional properties: Each of the following properity indicates that a specific feature is enabled on this UBI32 core that allows data/stats commnicatin with the Apps CPU - qcom,capwap-enabled - qcom,crypto-enabled - qcom,dtls-enabled - qcom,gre-redir-enabled - qcom,ipsec-enabled - qcom,ipv4-enabled - qcom,ipv4-reasm-enabled - qcom,ipv6-enabled - qcom,ipv6-reasm-enabled - qcom,l2tpv2-enabled - qcom,map-t-enabled - qcom,oam-enabled - qcom,qvpn-enabled - qcom,pppoe-enabled - qcom,pptp-enabled - qcom,portid-enabled - qcom,shaping-enabled - qcom,tstamp-enabled - qcom,turbo-frequency - qcom,tun6rd-enabled - qcom,tunipip6-enabled - qcom,wlanredirect-enabled - qcom,wlan-dataplane-offload-enabled example: nss0: nss@40000000 { compatible = "qcom,nss"; pinctrl-0 = <&nss_spi_pins>; pinctrl-names = "default"; interrupts = ; reg = <0x36000000 0x1000 0x39000000 0x10000>; reg-names = "nphys", "vphys"; clocks = <&gcc NSS_CORE_CLK>, <&gcc NSSTCM_CLK_SRC>, <&gcc NSSTCM_CLK>, <&nss_fabric0_clk>, <&nss_fabric1_clk>; clock-names = "nss-core-clk", "nss-tcm-src", "nss-tcm-clk", "nss-fab0-clk", "nss-fab1-clk"; resets = <&gcc UBI32_CORE1_CLKRST_CLAMP_RESET>, <&gcc UBI32_CORE1_CLAMP_RESET>, <&gcc UBI32_CORE1_AHB_RESET>, <&gcc UBI32_CORE1_AXI_RESET>; reset-names = "clkrst-clamp", "clamp", "ahb", "axi"; qcom,id = <0>; qcom,num-irq = <2>; qcom,num-queue = <2>; qcom,load-addr = <0x40000000>; qcom,turbo-frequency = <1>; qcom,low-frequency = <110000000>; qcom,mid-frequency = <550000000>; qcom,max-frequency = <733000000>; qcom,ipv4-enabled; qcom,ipv6-enabled; qcom,wlanredirect-enabled; qcom,tun6rd-enabled; qcom,tunipip6-enabled; qcom,shaping-enabled; qcom,wlan-dataplane-offload-enabled; }; nss1: nss@40800000 { compatible = "qcom,nss"; interrupts = ; reg = <0x36400000 0x1000 0x39010000 0x10000>; reg-names = "nphys", "vphys"; resets = <&gcc UBI32_CORE2_CLKRST_CLAMP_RESET>, <&gcc UBI32_CORE2_CLAMP_RESET>, <&gcc UBI32_CORE2_AHB_RESET>, <&gcc UBI32_CORE2_AXI_RESET>; reset-names = "clkrst-clamp", "clamp", "ahb", "axi"; qcom,id = <1>; qcom,num-irq = <2>; qcom,num-queue = <2>; qcom,load-addr = <0x40800000>; qcom,turbo-frequency = <1>; qcom,low-frequency = <110000000>; qcom,mid-frequency = <550000000>; qcom,max-frequency = <733000000>; qcom,crypto-enabled; qcom,ipsec-enabled; qcom,qvpn-enabled; };