1*d5d29d52SKurt Kanzenbach# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*d5d29d52SKurt Kanzenbach%YAML 1.2 3*d5d29d52SKurt Kanzenbach--- 4*d5d29d52SKurt Kanzenbach$id: http://devicetree.org/schemas/net/dsa/hirschmann,hellcreek.yaml# 5*d5d29d52SKurt Kanzenbach$schema: http://devicetree.org/meta-schemas/core.yaml# 6*d5d29d52SKurt Kanzenbach 7*d5d29d52SKurt Kanzenbachtitle: Hirschmann Hellcreek TSN Switch Device Tree Bindings 8*d5d29d52SKurt Kanzenbach 9*d5d29d52SKurt KanzenbachallOf: 10*d5d29d52SKurt Kanzenbach - $ref: dsa.yaml# 11*d5d29d52SKurt Kanzenbach 12*d5d29d52SKurt Kanzenbachmaintainers: 13*d5d29d52SKurt Kanzenbach - Andrew Lunn <andrew@lunn.ch> 14*d5d29d52SKurt Kanzenbach - Florian Fainelli <f.fainelli@gmail.com> 15*d5d29d52SKurt Kanzenbach - Vivien Didelot <vivien.didelot@gmail.com> 16*d5d29d52SKurt Kanzenbach - Kurt Kanzenbach <kurt@linutronix.de> 17*d5d29d52SKurt Kanzenbach 18*d5d29d52SKurt Kanzenbachdescription: 19*d5d29d52SKurt Kanzenbach The Hellcreek TSN Switch IP is a 802.1Q Ethernet compliant switch. It supports 20*d5d29d52SKurt Kanzenbach the Precision Time Protocol, Hardware Timestamping as well the Time Aware 21*d5d29d52SKurt Kanzenbach Shaper. 22*d5d29d52SKurt Kanzenbach 23*d5d29d52SKurt Kanzenbachproperties: 24*d5d29d52SKurt Kanzenbach compatible: 25*d5d29d52SKurt Kanzenbach items: 26*d5d29d52SKurt Kanzenbach - const: hirschmann,hellcreek-de1soc-r1 27*d5d29d52SKurt Kanzenbach 28*d5d29d52SKurt Kanzenbach reg: 29*d5d29d52SKurt Kanzenbach description: 30*d5d29d52SKurt Kanzenbach The physical base address and size of TSN and PTP memory base 31*d5d29d52SKurt Kanzenbach minItems: 2 32*d5d29d52SKurt Kanzenbach maxItems: 2 33*d5d29d52SKurt Kanzenbach 34*d5d29d52SKurt Kanzenbach reg-names: 35*d5d29d52SKurt Kanzenbach items: 36*d5d29d52SKurt Kanzenbach - const: tsn 37*d5d29d52SKurt Kanzenbach - const: ptp 38*d5d29d52SKurt Kanzenbach 39*d5d29d52SKurt Kanzenbach leds: 40*d5d29d52SKurt Kanzenbach type: object 41*d5d29d52SKurt Kanzenbach properties: 42*d5d29d52SKurt Kanzenbach '#address-cells': 43*d5d29d52SKurt Kanzenbach const: 1 44*d5d29d52SKurt Kanzenbach '#size-cells': 45*d5d29d52SKurt Kanzenbach const: 0 46*d5d29d52SKurt Kanzenbach 47*d5d29d52SKurt Kanzenbach patternProperties: 48*d5d29d52SKurt Kanzenbach "^led@[01]$": 49*d5d29d52SKurt Kanzenbach type: object 50*d5d29d52SKurt Kanzenbach description: Hellcreek leds 51*d5d29d52SKurt Kanzenbach $ref: ../../leds/common.yaml# 52*d5d29d52SKurt Kanzenbach 53*d5d29d52SKurt Kanzenbach properties: 54*d5d29d52SKurt Kanzenbach reg: 55*d5d29d52SKurt Kanzenbach items: 56*d5d29d52SKurt Kanzenbach - enum: [0, 1] 57*d5d29d52SKurt Kanzenbach description: Led number 58*d5d29d52SKurt Kanzenbach 59*d5d29d52SKurt Kanzenbach label: true 60*d5d29d52SKurt Kanzenbach 61*d5d29d52SKurt Kanzenbach default-state: true 62*d5d29d52SKurt Kanzenbach 63*d5d29d52SKurt Kanzenbach required: 64*d5d29d52SKurt Kanzenbach - reg 65*d5d29d52SKurt Kanzenbach 66*d5d29d52SKurt Kanzenbach additionalProperties: false 67*d5d29d52SKurt Kanzenbach 68*d5d29d52SKurt Kanzenbach additionalProperties: false 69*d5d29d52SKurt Kanzenbach 70*d5d29d52SKurt Kanzenbachrequired: 71*d5d29d52SKurt Kanzenbach - compatible 72*d5d29d52SKurt Kanzenbach - reg 73*d5d29d52SKurt Kanzenbach - reg-names 74*d5d29d52SKurt Kanzenbach - ethernet-ports 75*d5d29d52SKurt Kanzenbach - leds 76*d5d29d52SKurt Kanzenbach 77*d5d29d52SKurt KanzenbachunevaluatedProperties: false 78*d5d29d52SKurt Kanzenbach 79*d5d29d52SKurt Kanzenbachexamples: 80*d5d29d52SKurt Kanzenbach - | 81*d5d29d52SKurt Kanzenbach switch0: switch@ff240000 { 82*d5d29d52SKurt Kanzenbach compatible = "hirschmann,hellcreek-de1soc-r1"; 83*d5d29d52SKurt Kanzenbach reg = <0xff240000 0x1000>, 84*d5d29d52SKurt Kanzenbach <0xff250000 0x1000>; 85*d5d29d52SKurt Kanzenbach reg-names = "tsn", "ptp"; 86*d5d29d52SKurt Kanzenbach dsa,member = <0 0>; 87*d5d29d52SKurt Kanzenbach 88*d5d29d52SKurt Kanzenbach ethernet-ports { 89*d5d29d52SKurt Kanzenbach #address-cells = <1>; 90*d5d29d52SKurt Kanzenbach #size-cells = <0>; 91*d5d29d52SKurt Kanzenbach 92*d5d29d52SKurt Kanzenbach port@0 { 93*d5d29d52SKurt Kanzenbach reg = <0>; 94*d5d29d52SKurt Kanzenbach label = "cpu"; 95*d5d29d52SKurt Kanzenbach ethernet = <&gmac0>; 96*d5d29d52SKurt Kanzenbach }; 97*d5d29d52SKurt Kanzenbach 98*d5d29d52SKurt Kanzenbach port@2 { 99*d5d29d52SKurt Kanzenbach reg = <2>; 100*d5d29d52SKurt Kanzenbach label = "lan0"; 101*d5d29d52SKurt Kanzenbach phy-handle = <&phy1>; 102*d5d29d52SKurt Kanzenbach }; 103*d5d29d52SKurt Kanzenbach 104*d5d29d52SKurt Kanzenbach port@3 { 105*d5d29d52SKurt Kanzenbach reg = <3>; 106*d5d29d52SKurt Kanzenbach label = "lan1"; 107*d5d29d52SKurt Kanzenbach phy-handle = <&phy2>; 108*d5d29d52SKurt Kanzenbach }; 109*d5d29d52SKurt Kanzenbach }; 110*d5d29d52SKurt Kanzenbach 111*d5d29d52SKurt Kanzenbach leds { 112*d5d29d52SKurt Kanzenbach #address-cells = <1>; 113*d5d29d52SKurt Kanzenbach #size-cells = <0>; 114*d5d29d52SKurt Kanzenbach 115*d5d29d52SKurt Kanzenbach led@0 { 116*d5d29d52SKurt Kanzenbach reg = <0>; 117*d5d29d52SKurt Kanzenbach label = "sync_good"; 118*d5d29d52SKurt Kanzenbach default-state = "on"; 119*d5d29d52SKurt Kanzenbach }; 120*d5d29d52SKurt Kanzenbach 121*d5d29d52SKurt Kanzenbach led@1 { 122*d5d29d52SKurt Kanzenbach reg = <1>; 123*d5d29d52SKurt Kanzenbach label = "is_gm"; 124*d5d29d52SKurt Kanzenbach default-state = "off"; 125*d5d29d52SKurt Kanzenbach }; 126*d5d29d52SKurt Kanzenbach }; 127*d5d29d52SKurt Kanzenbach }; 128