cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qcom,lpass-cpu.yaml (7570B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Qualcomm Technologies Inc. LPASS CPU dai driver bindings
      8
      9maintainers:
     10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
     11  - Rohit kumar <rohitkr@codeaurora.org>
     12
     13description: |
     14  Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist
     15  of MI2S interface for audio data transfer on external codecs. LPASS cpu driver
     16  is a module to configure Low-Power Audio Interface(LPAIF) core registers
     17  across different IP versions.
     18
     19properties:
     20  compatible:
     21    enum:
     22      - qcom,lpass-cpu
     23      - qcom,apq8016-lpass-cpu
     24      - qcom,sc7180-lpass-cpu
     25      - qcom,sc7280-lpass-cpu
     26
     27  reg:
     28    minItems: 2
     29    maxItems: 6
     30    description: LPAIF core registers
     31
     32  reg-names:
     33    minItems: 2
     34    maxItems: 6
     35
     36  clocks:
     37    minItems: 3
     38    maxItems: 7
     39
     40  clock-names:
     41    minItems: 1
     42    maxItems: 10
     43
     44  interrupts:
     45    minItems: 2
     46    maxItems: 4
     47    description: LPAIF DMA buffer interrupt
     48
     49  interrupt-names:
     50    minItems: 2
     51    maxItems: 4
     52
     53  qcom,adsp:
     54    $ref: /schemas/types.yaml#/definitions/phandle
     55    description: Phandle for the audio DSP node
     56
     57  iommus:
     58    minItems: 2
     59    maxItems: 3
     60    description: Phandle to apps_smmu node with sid mask
     61
     62  power-domains:
     63    maxItems: 1
     64
     65  power-domain-names:
     66    maxItems: 1
     67
     68  '#sound-dai-cells':
     69    const: 1
     70
     71  '#address-cells':
     72    const: 1
     73
     74  '#size-cells':
     75    const: 0
     76
     77patternProperties:
     78  "^dai-link@[0-9a-f]$":
     79    type: object
     80    description: |
     81      LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node
     82      depends on the specific driver providing the functionality and
     83      properties.
     84    properties:
     85      reg:
     86        maxItems: 1
     87        description: Must be one of the DAI ID
     88
     89      qcom,playback-sd-lines:
     90        $ref: /schemas/types.yaml#/definitions/uint32-array
     91        description: list of MI2S data lines for playback
     92
     93      qcom,capture-sd-lines:
     94        $ref: /schemas/types.yaml#/definitions/uint32-array
     95        description: list of MI2S data lines for capture
     96
     97    required:
     98      - reg
     99
    100    additionalProperties: false
    101
    102required:
    103  - compatible
    104  - reg
    105  - reg-names
    106  - clocks
    107  - clock-names
    108  - interrupts
    109  - interrupt-names
    110  - '#sound-dai-cells'
    111
    112additionalProperties: false
    113
    114allOf:
    115  - if:
    116      properties:
    117        compatible:
    118          contains:
    119            const: qcom,lpass-cpu
    120
    121    then:
    122      properties:
    123        clock-names:
    124          items:
    125            - const: ahbix-clk
    126            - const: mi2s-osr-clk
    127            - const: mi2s-bit-clk
    128
    129  - if:
    130      properties:
    131        compatible:
    132          contains:
    133            const: qcom,apq8016-lpass-cpu
    134
    135    then:
    136      properties:
    137        clock-names:
    138          items:
    139            - const: ahbix-clk
    140            - const: mi2s-bit-clk0
    141            - const: mi2s-bit-clk1
    142            - const: mi2s-bit-clk2
    143            - const: mi2s-bit-clk3
    144            - const: pcnoc-mport-clk
    145            - const: pcnoc-sway-clk
    146
    147  - if:
    148      properties:
    149        compatible:
    150          contains:
    151            const: qcom,sc7180-lpass-cpu
    152
    153    then:
    154      properties:
    155        clock-names:
    156          oneOf:
    157            - items:   #for I2S
    158                - const: pcnoc-sway-clk
    159                - const: audio-core
    160                - const: mclk0
    161                - const: pcnoc-mport-clk
    162                - const: mi2s-bit-clk0
    163                - const: mi2s-bit-clk1
    164            - items:   #for HDMI
    165                - const: pcnoc-sway-clk
    166                - const: audio-core
    167                - const: pcnoc-mport-clk
    168        reg-names:
    169          anyOf:
    170            - items:   #for I2S
    171                - const: lpass-lpaif
    172            - items:   #for I2S and HDMI
    173                - const: lpass-hdmiif
    174                - const: lpass-lpaif
    175        interrupt-names:
    176          anyOf:
    177            - items:   #for I2S
    178                - const: lpass-irq-lpaif
    179            - items:   #for I2S and HDMI
    180                - const: lpass-irq-lpaif
    181                - const: lpass-irq-hdmi
    182      required:
    183        - iommus
    184        - power-domains
    185
    186  - if:
    187      properties:
    188        compatible:
    189          contains:
    190            const: qcom,sc7280-lpass-cpu
    191
    192    then:
    193      properties:
    194        clock-names:
    195          oneOf:
    196            - items:   #for I2S
    197                - const: aon_cc_audio_hm_h
    198                - const: audio_cc_ext_mclk0
    199                - const: core_cc_sysnoc_mport_core
    200                - const: core_cc_ext_if0_ibit
    201                - const: core_cc_ext_if1_ibit
    202            - items:   #for Soundwire
    203                - const: aon_cc_audio_hm_h
    204                - const: audio_cc_codec_mem
    205                - const: audio_cc_codec_mem0
    206                - const: audio_cc_codec_mem1
    207                - const: audio_cc_codec_mem2
    208                - const: aon_cc_va_mem0
    209            - items:   #for HDMI
    210                - const: core_cc_sysnoc_mport_core
    211
    212        reg-names:
    213          anyOf:
    214            - items:   #for I2S
    215                - const: lpass-lpaif
    216            - items:   #for I2S and HDMI
    217                - const: lpass-hdmiif
    218                - const: lpass-lpaif
    219            - items:   #for I2S, soundwire and HDMI
    220                - const: lpass-hdmiif
    221                - const: lpass-lpaif
    222                - const: lpass-rxtx-cdc-dma-lpm
    223                - const: lpass-rxtx-lpaif
    224                - const: lpass-va-lpaif
    225                - const: lpass-va-cdc-dma-lpm
    226        interrupt-names:
    227          anyOf:
    228            - items:   #for I2S
    229                - const: lpass-irq-lpaif
    230            - items:   #for I2S and HDMI
    231                - const: lpass-irq-lpaif
    232                - const: lpass-irq-hdmi
    233            - items:   #for I2S, soundwire and HDMI
    234                - const: lpass-irq-lpaif
    235                - const: lpass-irq-hdmi
    236                - const: lpass-irq-vaif
    237                - const: lpass-irq-rxtxif
    238        power-domain-names:
    239          allOf:
    240            - items:
    241                - const: lcx
    242
    243      required:
    244        - iommus
    245        - power-domains
    246
    247examples:
    248  - |
    249    #include <dt-bindings/sound/sc7180-lpass.h>
    250
    251    soc {
    252        #address-cells = <2>;
    253        #size-cells = <2>;
    254        lpass@62d80000 {
    255            compatible = "qcom,sc7180-lpass-cpu";
    256
    257            reg = <0 0x62d87000 0 0x68000>,
    258                  <0 0x62f00000 0 0x29000>;
    259            reg-names = "lpass-hdmiif",
    260                        "lpass-lpaif";
    261            iommus = <&apps_smmu 0x1020 0>,
    262                     <&apps_smmu 0x1032 0>;
    263            power-domains = <&lpass_hm 0>;
    264
    265            clocks = <&gcc 131>,
    266                 <&lpasscorecc 6>,
    267                 <&lpasscorecc 7>,
    268                 <&lpasscorecc 10>,
    269                 <&lpasscorecc 8>,
    270                 <&lpasscorecc 9>;
    271
    272            clock-names = "pcnoc-sway-clk", "audio-core",
    273                          "mclk0", "pcnoc-mport-clk",
    274                          "mi2s-bit-clk0", "mi2s-bit-clk1";
    275
    276            interrupts = <0 160 1>,
    277                         <0 268 1>;
    278            interrupt-names = "lpass-irq-lpaif",
    279                              "lpass-irq-hdmi";
    280            #sound-dai-cells = <1>;
    281
    282            #address-cells = <1>;
    283            #size-cells = <0>;
    284            /* Optional to set different MI2S SD lines */
    285            dai-link@0 {
    286                reg = <MI2S_PRIMARY>;
    287                qcom,playback-sd-lines = <1>;
    288                qcom,capture-sd-lines = <0>;
    289            };
    290        };
    291    };
    292
    293...