brintos

brintos / linux-shallow public Read only

0
0
Text · 6.2 KiB · 7da8370 Raw
214 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/net/lantiq,pef2256.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Lantiq PEF22568 9maintainers:10  - Herve Codina <herve.codina@bootlin.com>11 12description:13  The Lantiq PEF2256, also known as Infineon PEF2256 or FALC56, is a framer and14  line interface component designed to fulfill all required interfacing between15  an analog E1/T1/J1 line and the digital PCM system highway/H.100 bus.16 17properties:18  compatible:19    items:20      - const: lantiq,pef225621 22  reg:23    maxItems: 124 25  clocks:26    items:27      - description: Master Clock28      - description: System Clock Receive29      - description: System Clock Transmit30 31  clock-names:32    items:33      - const: mclk34      - const: sclkr35      - const: sclkx36 37  interrupts:38    maxItems: 139 40  reset-gpios:41    description:42      GPIO used to reset the device.43    maxItems: 144 45  pinctrl:46    $ref: /schemas/pinctrl/pinctrl.yaml#47    additionalProperties: false48 49    patternProperties:50      '-pins$':51        type: object52        $ref: /schemas/pinctrl/pinmux-node.yaml#53        additionalProperties: false54 55        properties:56          pins:57            enum: [ RPA, RPB, RPC, RPD, XPA, XPB, XPC, XPD ]58 59          function:60            enum: [ SYPR, RFM, RFMB, RSIGM, RSIG, DLR, FREEZE, RFSP, LOS,61                    SYPX, XFMS, XSIG, TCLK, XMFB, XSIGM, DLX, XCLK, XLT,62                    GPI, GPOH, GPOL ]63 64        required:65          - pins66          - function67 68  lantiq,data-rate-bps:69    enum: [2048000, 4096000, 8192000, 16384000]70    default: 204800071    description:72      Data rate (bit per seconds) on the system highway.73 74  lantiq,clock-falling-edge:75    $ref: /schemas/types.yaml#/definitions/flag76    description:77      Data is sent on falling edge of the clock (and received on the rising78      edge). If 'clock-falling-edge' is not present, data is sent on the79      rising edge (and received on the falling edge).80 81  lantiq,channel-phase:82    $ref: /schemas/types.yaml#/definitions/uint3283    enum: [0, 1, 2, 3, 4, 5, 6, 7]84    default: 085    description: |86      The pef2256 delivers a full frame (32 8-bit time-slots in E1 and 24 8-bit87      time-slots 8 8-bit signaling in E1/J1) every 125us. This lead to a data88      rate of 2048000 bit/s. When lantiq,data-rate-bps is more than 204800089      bit/s, the data (all 32 8-bit) present in the frame are interleave with90      unused time-slots. The lantiq,channel-phase property allows to set the91      correct alignment of the interleave mechanism.92      For instance, suppose lantiq,data-rate-bps = 8192000 (ie 4*2048000), and93      lantiq,channel-phase = 2, the interleave schema with unused time-slots94      (nu) and used time-slots (XX) for TSi is95        nu nu XX nu nu nu XX nu nu nu XX nu96        <-- TSi --> <- TSi+1 -> <- TSi+2 ->97      With lantiq,data-rate-bps = 8192000, and lantiq,channel-phase = 1, the98      interleave schema is99        nu XX nu nu nu XX nu nu nu XX nu nu100        <-- TSi --> <- TSi+1 -> <- TSi+2 ->101      With lantiq,data-rate-bps = 4096000 (ie 2*2048000), and102      lantiq,channel-phase = 1, the interleave schema is103        nu    XX    nu    XX    nu    XX104        <-- TSi --> <- TSi+1 -> <- TSi+2 ->105 106patternProperties:107  '^codec(-([0-9]|[1-2][0-9]|3[0-1]))?$':108    type: object109    $ref: /schemas/sound/dai-common.yaml110    unevaluatedProperties: false111    description:112      Codec provided by the pef2256. This codec allows to use some of the PCM113      system highway time-slots as audio channels to transport audio data over114      the E1/T1/J1 lines.115      The time-slots used by the codec must be set and so, the properties116      'dai-tdm-slot-num', 'dai-tdm-slot-width', 'dai-tdm-slot-tx-mask' and117      'dai-tdm-slot-rx-mask' must be present in the sound card node for118      sub-nodes that involve the codec. The codec uses 8-bit time-slots.119      'dai-tdm-tdm-slot-with' must be set to 8.120      The tx and rx masks define the pef2256 time-slots assigned to the codec.121 122    properties:123      compatible:124        const: lantiq,pef2256-codec125 126      '#sound-dai-cells':127        const: 0128 129    required:130      - compatible131      - '#sound-dai-cells'132 133required:134  - compatible135  - reg136  - clocks137  - clock-names138  - interrupts139 140additionalProperties: false141 142examples:143  - |144    #include <dt-bindings/gpio/gpio.h>145    #include <dt-bindings/interrupt-controller/irq.h>146 147    pef2256: framer@2000000 {148      compatible = "lantiq,pef2256";149      reg = <0x2000000 0x100>;150      interrupts = <8 IRQ_TYPE_LEVEL_LOW>;151      interrupt-parent = <&intc>;152      clocks = <&clk_mclk>, <&clk_sclkr>, <&clk_sclkx>;153      clock-names = "mclk", "sclkr", "sclkx";154      reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;155      lantiq,data-rate-bps = <4096000>;156 157      pinctrl {158        pef2256_rpa_sypr: rpa-pins {159          pins = "RPA";160          function = "SYPR";161        };162        pef2256_xpa_sypx: xpa-pins {163          pins = "XPA";164          function = "SYPX";165        };166      };167 168      pef2256_codec0: codec-0 {169        compatible = "lantiq,pef2256-codec";170        #sound-dai-cells = <0>;171        sound-name-prefix = "PEF2256_0";172      };173 174      pef2256_codec1: codec-1 {175        compatible = "lantiq,pef2256-codec";176        #sound-dai-cells = <0>;177        sound-name-prefix = "PEF2256_1";178      };179    };180 181    sound {182      compatible = "simple-audio-card";183      #address-cells = <1>;184      #size-cells = <0>;185      simple-audio-card,dai-link@0 { /* CPU DAI1 - pef2256 codec 1 */186        reg = <0>;187        cpu {188          sound-dai = <&cpu_dai1>;189        };190        codec {191          sound-dai = <&pef2256_codec0>;192          dai-tdm-slot-num = <4>;193          dai-tdm-slot-width = <8>;194          /* TS 1, 2, 3, 4 */195          dai-tdm-slot-tx-mask = <0 1 1 1 1>;196          dai-tdm-slot-rx-mask = <0 1 1 1 1>;197        };198      };199      simple-audio-card,dai-link@1 { /* CPU DAI2 - pef2256 codec 2 */200        reg = <1>;201        cpu {202          sound-dai = <&cpu_dai2>;203        };204        codec {205          sound-dai = <&pef2256_codec1>;206          dai-tdm-slot-num = <4>;207          dai-tdm-slot-width = <8>;208          /* TS 5, 6, 7, 8 */209          dai-tdm-slot-tx-mask = <0 0 0 0 0 1 1 1 1>;210          dai-tdm-slot-rx-mask = <0 0 0 0 0 1 1 1 1>;211        };212      };213    };214