brintos

brintos / linux-shallow public Read only

0
0
Text · 10.7 KiB · 1e00ef5 Raw
376 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/renesas,etheravb.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Renesas Ethernet AVB8 9maintainers:10  - Sergei Shtylyov <sergei.shtylyov@gmail.com>11 12properties:13  compatible:14    oneOf:15      - items:16          - enum:17              - renesas,etheravb-r8a7742      # RZ/G1H18              - renesas,etheravb-r8a7743      # RZ/G1M19              - renesas,etheravb-r8a7744      # RZ/G1N20              - renesas,etheravb-r8a7745      # RZ/G1E21              - renesas,etheravb-r8a77470     # RZ/G1C22              - renesas,etheravb-r8a7790      # R-Car H223              - renesas,etheravb-r8a7791      # R-Car M2-W24              - renesas,etheravb-r8a7792      # R-Car V2H25              - renesas,etheravb-r8a7793      # R-Car M2-N26              - renesas,etheravb-r8a7794      # R-Car E227          - const: renesas,etheravb-rcar-gen2 # R-Car Gen2 and RZ/G128 29      - items:30          - enum:31              - renesas,etheravb-r8a774a1     # RZ/G2M32              - renesas,etheravb-r8a774b1     # RZ/G2N33              - renesas,etheravb-r8a774c0     # RZ/G2E34              - renesas,etheravb-r8a774e1     # RZ/G2H35              - renesas,etheravb-r8a7795      # R-Car H336              - renesas,etheravb-r8a7796      # R-Car M3-W37              - renesas,etheravb-r8a77961     # R-Car M3-W+38              - renesas,etheravb-r8a77965     # R-Car M3-N39              - renesas,etheravb-r8a77970     # R-Car V3M40              - renesas,etheravb-r8a77980     # R-Car V3H41              - renesas,etheravb-r8a77990     # R-Car E342              - renesas,etheravb-r8a77995     # R-Car D343          - const: renesas,etheravb-rcar-gen3 # R-Car Gen3 and RZ/G244 45      - items:46          - enum:47              - renesas,etheravb-r8a779a0     # R-Car V3U48              - renesas,etheravb-r8a779g0     # R-Car V4H49              - renesas,etheravb-r8a779h0     # R-Car V4M50          - const: renesas,etheravb-rcar-gen4 # R-Car Gen451 52      - items:53          - enum:54              - renesas,etheravb-r9a09g011 # RZ/V2M55          - const: renesas,etheravb-rzv2m  # RZ/V2M compatible56 57      - items:58          - enum:59              - renesas,r9a07g043-gbeth # RZ/G2UL and RZ/Five60              - renesas,r9a07g044-gbeth # RZ/G2{L,LC}61              - renesas,r9a07g054-gbeth # RZ/V2L62              - renesas,r9a08g045-gbeth # RZ/G3S63          - const: renesas,rzg2l-gbeth  # RZ/{G2L,G2UL,V2L} family64 65  reg:66    minItems: 167    items:68      - description: MAC register block69      - description: Stream buffer70 71  interrupts:72    minItems: 173    maxItems: 2974 75  interrupt-names:76    minItems: 177    maxItems: 2978 79  clocks:80    minItems: 181    maxItems: 382 83  clock-names:84    minItems: 185    maxItems: 386 87  iommus:88    maxItems: 189 90  power-domains:91    maxItems: 192 93  resets:94    maxItems: 195 96  phy-mode: true97 98  phy-handle: true99 100  '#address-cells':101    description: Number of address cells for the MDIO bus.102    const: 1103    deprecated: true104 105  '#size-cells':106    description: Number of size cells on the MDIO bus.107    const: 0108    deprecated: true109 110  mdio:111    $ref: /schemas/net/mdio.yaml#112    unevaluatedProperties: false113 114  renesas,no-ether-link:115    type: boolean116    description:117      Specify when a board does not provide a proper AVB_LINK signal.118 119  renesas,ether-link-active-low:120    type: boolean121    description:122      Specify when the AVB_LINK signal is active-low instead of normal123      active-high.124 125  rx-internal-delay-ps:126    enum: [0, 1800]127 128  tx-internal-delay-ps:129    enum: [0, 2000]130 131# In older bindings there where no mdio child-node to describe the MDIO bus132# and the PHY. To not fail older bindings accept any node with an address. New133# users should describe the PHY inside the mdio child-node.134patternProperties:135  "@[0-9a-f]$":136    type: object137    deprecated: true138 139required:140  - compatible141  - reg142  - interrupts143  - clocks144  - power-domains145  - resets146  - phy-mode147  - phy-handle148 149allOf:150  - $ref: ethernet-controller.yaml#151 152  - if:153      properties:154        compatible:155          contains:156            enum:157              - renesas,etheravb-rcar-gen2158              - renesas,etheravb-r8a7795159              - renesas,etheravb-r8a7796160              - renesas,etheravb-r8a77961161              - renesas,etheravb-r8a77965162    then:163      properties:164        reg:165          minItems: 2166    else:167      properties:168        reg:169          maxItems: 1170 171  - if:172      properties:173        compatible:174          contains:175            enum:176              - renesas,etheravb-rcar-gen2177              - renesas,rzg2l-gbeth178    then:179      properties:180        interrupts:181          minItems: 1182          maxItems: 3183        interrupt-names:184          minItems: 1185          items:186            - const: mux187            - const: fil188            - const: arp_ns189        rx-internal-delay-ps: false190    else:191      if:192        properties:193          compatible:194            contains:195              const: renesas,etheravb-rzv2m196      then:197        properties:198          interrupts:199            minItems: 29200            maxItems: 29201          interrupt-names:202            items:203              pattern: '^(ch(1?)[0-9])|ch20|ch21|dia|dib|err_a|err_b|mgmt_a|mgmt_b|line3$'204          rx-internal-delay-ps: false205        required:206          - interrupt-names207      else:208        properties:209          interrupts:210            minItems: 25211            maxItems: 25212          interrupt-names:213            items:214              pattern: '^ch[0-9]+$'215        required:216          - interrupt-names217          - rx-internal-delay-ps218 219  - if:220      properties:221        compatible:222          contains:223            enum:224              - renesas,etheravb-r8a774a1225              - renesas,etheravb-r8a774b1226              - renesas,etheravb-r8a774e1227              - renesas,etheravb-r8a7795228              - renesas,etheravb-r8a7796229              - renesas,etheravb-r8a77961230              - renesas,etheravb-r8a77965231              - renesas,etheravb-r8a77970232              - renesas,etheravb-r8a77980233              - renesas,etheravb-rcar-gen4234    then:235      required:236        - tx-internal-delay-ps237    else:238      properties:239        tx-internal-delay-ps: false240 241  - if:242      properties:243        compatible:244          contains:245            const: renesas,etheravb-r8a77995246    then:247      properties:248        rx-internal-delay-ps:249          const: 1800250 251  - if:252      properties:253        compatible:254          contains:255            const: renesas,etheravb-r8a77980256    then:257      properties:258        tx-internal-delay-ps:259          const: 2000260 261  - if:262      properties:263        compatible:264          contains:265            const: renesas,rzg2l-gbeth266    then:267      properties:268        clocks:269          items:270            - description: Main clock271            - description: Register access clock272            - description: Reference clock for RGMII273        clock-names:274          items:275            - const: axi276            - const: chi277            - const: refclk278    else:279      if:280        properties:281          compatible:282            contains:283              const: renesas,etheravb-rzv2m284      then:285        properties:286          clocks:287            items:288              - description: Main clock289              - description: Coherent Hub Interface clock290              - description: gPTP reference clock291          clock-names:292            items:293              - const: axi294              - const: chi295              - const: gptp296      else:297        properties:298          clocks:299            minItems: 1300            items:301              - description: AVB functional clock302              - description: Optional TXC reference clock303          clock-names:304            minItems: 1305            items:306              - const: fck307              - const: refclk308 309additionalProperties: false310 311examples:312  - |313    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>314    #include <dt-bindings/interrupt-controller/arm-gic.h>315    #include <dt-bindings/power/r8a7795-sysc.h>316    #include <dt-bindings/gpio/gpio.h>317    aliases {318            ethernet0 = &avb;319    };320 321    avb: ethernet@e6800000 {322            compatible = "renesas,etheravb-r8a7795",323                         "renesas,etheravb-rcar-gen3";324            reg = <0xe6800000 0x800>, <0xe6a00000 0x10000>;325            interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,326                         <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,327                         <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,328                         <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,329                         <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,330                         <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,331                         <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,332                         <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,333                         <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,334                         <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,335                         <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,336                         <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,337                         <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,338                         <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,339                         <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,340                         <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,341                         <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,342                         <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,343                         <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,344                         <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,345                         <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,346                         <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,347                         <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,348                         <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,349                         <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;350            interrupt-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6",351                              "ch7", "ch8", "ch9", "ch10", "ch11", "ch12",352                              "ch13", "ch14", "ch15", "ch16", "ch17", "ch18",353                              "ch19", "ch20", "ch21", "ch22", "ch23", "ch24";354            clocks = <&cpg CPG_MOD 812>;355            clock-names = "fck";356            iommus = <&ipmmu_ds0 16>;357            power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;358            resets = <&cpg 812>;359            phy-mode = "rgmii";360            phy-handle = <&phy0>;361            rx-internal-delay-ps = <0>;362            tx-internal-delay-ps = <2000>;363            #address-cells = <1>;364            #size-cells = <0>;365 366            phy0: ethernet-phy@0 {367                    compatible = "ethernet-phy-id0022.1622",368                                 "ethernet-phy-ieee802.3-c22";369                    rxc-skew-ps = <1500>;370                    reg = <0>;371                    interrupt-parent = <&gpio2>;372                    interrupts = <11 IRQ_TYPE_LEVEL_LOW>;373                    reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;374            };375    };376