1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 2*8bab661aSEmmanuel Vadot%YAML 1.2 3*8bab661aSEmmanuel Vadot--- 4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/slimbus/qcom,slim-ngd.yaml# 5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8bab661aSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller 8*8bab661aSEmmanuel Vadot 9*8bab661aSEmmanuel Vadotmaintainers: 10*8bab661aSEmmanuel Vadot - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 11*8bab661aSEmmanuel Vadot - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 12*8bab661aSEmmanuel Vadot 13*8bab661aSEmmanuel Vadotdescription: 14*8bab661aSEmmanuel Vadot SLIMBus NGD controller is a light-weight driver responsible for communicating 15*8bab661aSEmmanuel Vadot with SLIMBus slaves directly over the bus using messaging interface and 16*8bab661aSEmmanuel Vadot communicating with master component residing on ADSP for bandwidth and 17*8bab661aSEmmanuel Vadot data-channel management 18*8bab661aSEmmanuel Vadot 19*8bab661aSEmmanuel Vadotproperties: 20*8bab661aSEmmanuel Vadot compatible: 21*8bab661aSEmmanuel Vadot enum: 22*8bab661aSEmmanuel Vadot - qcom,slim-ngd-v1.5.0 # for MSM8996 23*8bab661aSEmmanuel Vadot - qcom,slim-ngd-v2.1.0 # for SDM845 24*8bab661aSEmmanuel Vadot 25*8bab661aSEmmanuel Vadot reg: 26*8bab661aSEmmanuel Vadot maxItems: 1 27*8bab661aSEmmanuel Vadot 28*8bab661aSEmmanuel Vadot "#address-cells": 29*8bab661aSEmmanuel Vadot const: 1 30*8bab661aSEmmanuel Vadot 31*8bab661aSEmmanuel Vadot "#size-cells": 32*8bab661aSEmmanuel Vadot const: 0 33*8bab661aSEmmanuel Vadot 34*8bab661aSEmmanuel Vadot dmas: 35*8bab661aSEmmanuel Vadot maxItems: 2 36*8bab661aSEmmanuel Vadot 37*8bab661aSEmmanuel Vadot dma-names: 38*8bab661aSEmmanuel Vadot items: 39*8bab661aSEmmanuel Vadot - const: rx 40*8bab661aSEmmanuel Vadot - const: tx 41*8bab661aSEmmanuel Vadot 42*8bab661aSEmmanuel Vadot interrupts: 43*8bab661aSEmmanuel Vadot maxItems: 1 44*8bab661aSEmmanuel Vadot 45*8bab661aSEmmanuel Vadot iommus: 46*8bab661aSEmmanuel Vadot maxItems: 1 47*8bab661aSEmmanuel Vadot 48*8bab661aSEmmanuel VadotpatternProperties: 49*8bab661aSEmmanuel Vadot "^slim@[0-9a-f]+$": 50*8bab661aSEmmanuel Vadot type: object 51*8bab661aSEmmanuel Vadot $ref: slimbus.yaml# 52*8bab661aSEmmanuel Vadot description: 53*8bab661aSEmmanuel Vadot Each subnode represents an instance of NGD 54*8bab661aSEmmanuel Vadot 55*8bab661aSEmmanuel Vadot properties: 56*8bab661aSEmmanuel Vadot reg: 57*8bab661aSEmmanuel Vadot maxItems: 1 58*8bab661aSEmmanuel Vadot 59*8bab661aSEmmanuel Vadot unevaluatedProperties: false 60*8bab661aSEmmanuel Vadot 61*8bab661aSEmmanuel Vadotrequired: 62*8bab661aSEmmanuel Vadot - compatible 63*8bab661aSEmmanuel Vadot - reg 64*8bab661aSEmmanuel Vadot - "#address-cells" 65*8bab661aSEmmanuel Vadot - "#size-cells" 66*8bab661aSEmmanuel Vadot - dmas 67*8bab661aSEmmanuel Vadot - dma-names 68*8bab661aSEmmanuel Vadot - interrupts 69*8bab661aSEmmanuel Vadot 70*8bab661aSEmmanuel VadotadditionalProperties: false 71*8bab661aSEmmanuel Vadot 72*8bab661aSEmmanuel Vadotexamples: 73*8bab661aSEmmanuel Vadot - | 74*8bab661aSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 75*8bab661aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 76*8bab661aSEmmanuel Vadot 77*8bab661aSEmmanuel Vadot slim-ngd@171c0000 { 78*8bab661aSEmmanuel Vadot compatible = "qcom,slim-ngd-v2.1.0"; 79*8bab661aSEmmanuel Vadot reg = <0x171c0000 0x2c000>; 80*8bab661aSEmmanuel Vadot interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 81*8bab661aSEmmanuel Vadot 82*8bab661aSEmmanuel Vadot dmas = <&slimbam 3>, <&slimbam 4>; 83*8bab661aSEmmanuel Vadot dma-names = "rx", "tx"; 84*8bab661aSEmmanuel Vadot iommus = <&apps_smmu 0x1806 0x0>; 85*8bab661aSEmmanuel Vadot #address-cells = <1>; 86*8bab661aSEmmanuel Vadot #size-cells = <0>; 87*8bab661aSEmmanuel Vadot 88*8bab661aSEmmanuel Vadot slim@1 { 89*8bab661aSEmmanuel Vadot reg = <1>; 90*8bab661aSEmmanuel Vadot #address-cells = <2>; 91*8bab661aSEmmanuel Vadot #size-cells = <0>; 92*8bab661aSEmmanuel Vadot 93*8bab661aSEmmanuel Vadot codec@1,0 { 94*8bab661aSEmmanuel Vadot compatible = "slim217,250"; 95*8bab661aSEmmanuel Vadot reg = <1 0>; 96*8bab661aSEmmanuel Vadot slim-ifc-dev = <&wcd9340_ifd>; 97*8bab661aSEmmanuel Vadot 98*8bab661aSEmmanuel Vadot #sound-dai-cells = <1>; 99*8bab661aSEmmanuel Vadot 100*8bab661aSEmmanuel Vadot interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>; 101*8bab661aSEmmanuel Vadot interrupt-controller; 102*8bab661aSEmmanuel Vadot #interrupt-cells = <1>; 103*8bab661aSEmmanuel Vadot 104*8bab661aSEmmanuel Vadot #clock-cells = <0>; 105*8bab661aSEmmanuel Vadot clock-frequency = <9600000>; 106*8bab661aSEmmanuel Vadot clock-output-names = "mclk"; 107*8bab661aSEmmanuel Vadot qcom,micbias1-microvolt = <1800000>; 108*8bab661aSEmmanuel Vadot qcom,micbias2-microvolt = <1800000>; 109*8bab661aSEmmanuel Vadot qcom,micbias3-microvolt = <1800000>; 110*8bab661aSEmmanuel Vadot qcom,micbias4-microvolt = <1800000>; 111*8bab661aSEmmanuel Vadot 112*8bab661aSEmmanuel Vadot #address-cells = <1>; 113*8bab661aSEmmanuel Vadot #size-cells = <1>; 114*8bab661aSEmmanuel Vadot 115*8bab661aSEmmanuel Vadot reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>; 116*8bab661aSEmmanuel Vadot 117*8bab661aSEmmanuel Vadot /* Rest of the WCD9340 codec */ 118*8bab661aSEmmanuel Vadot }; 119*8bab661aSEmmanuel Vadot }; 120*8bab661aSEmmanuel Vadot }; 121