huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 1 | Hisilicon DSA Fabric device controller |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible: should be "hisilicon,hns-dsaf-v1" or "hisilicon,hns-dsaf-v2". |
| 5 | "hisilicon,hns-dsaf-v1" is for hip05. |
| 6 | "hisilicon,hns-dsaf-v2" is for Hi1610 and Hi1612. |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 7 | - mode: dsa fabric mode string. only support one of dsaf modes like these: |
| 8 | "2port-64vf", |
| 9 | "6port-16rss", |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 10 | "6port-16vf", |
| 11 | "single-port". |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 12 | - interrupt-parent: the interrupt parent of this device. |
| 13 | - interrupts: should contain the DSA Fabric and rcb interrupt. |
| 14 | - reg: specifies base physical address(es) and size of the device registers. |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 15 | The first region is external interface control register base and size(optional, |
| 16 | only be used when subctrl-syscon is not exists). It is recommended using |
| 17 | subctrl-syscon rather than this address. |
| 18 | The second region is SerDes base register and size(optional, only be used when |
| 19 | serdes-syscon in port node is not exists. It is recommended using |
| 20 | serdes-syscon rather than this address. |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 21 | The third region is the PPE register base and size. |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 22 | The fourth region is dsa fabric base register and size. It is not required for |
| 23 | single-port mode. |
| 24 | - reg-names: may be ppe-base and(or) dsaf-base. It is used to find the |
| 25 | corresponding reg's index. |
| 26 | |
| 27 | - phy-handle: phy handle of physicl port, 0 if not any phy device. It is optional |
| 28 | attribute. If port node is exists, phy-handle in each port node will be used. |
| 29 | see ethernet.txt [1]. |
| 30 | - subctrl-syscon: is syscon handle for external interface control register. |
| 31 | - reset-field-offset: is offset of reset field. Its value depends on the hardware |
| 32 | user manual. |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 33 | - buf-size: rx buffer size, should be 16-1024. |
| 34 | - desc-num: number of description in TX and RX queue, should be 512, 1024, 2048 or 4096. |
| 35 | |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 36 | - port: subnodes of dsaf. A dsaf node may contain several port nodes(Depending |
| 37 | on mode of dsaf). Port node contain some attributes listed below: |
| 38 | - port-id: is physical port index in one dsaf. |
| 39 | - phy-handle: phy handle of physicl port. It is not required if there isn't |
| 40 | phy device. see ethernet.txt [1]. |
| 41 | - serdes-syscon: is syscon handle for SerDes register. |
| 42 | - cpld-syscon: is syscon handle for cpld register. It is not required if there |
| 43 | isn't cpld device. |
| 44 | - cpld-ctrl-reg: is cpld register offset. It is not required if there isn't |
| 45 | cpld-syscon. |
| 46 | - port-rst-offset: is offset of reset field for each port in dsaf. Its value |
| 47 | depends on the hardware user manual. |
| 48 | - port-mode-offset: is offset of port mode field for each port in dsaf. Its |
| 49 | value depends on the hardware user manual. |
| 50 | |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 51 | [1] Documentation/devicetree/bindings/net/phy.txt |
| 52 | |
| 53 | Example: |
| 54 | |
yankejian | 48189d6 | 2016-01-20 16:00:19 +0800 | [diff] [blame] | 55 | dsaf0: dsa@c7000000 { |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 56 | compatible = "hisilicon,hns-dsaf-v1"; |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 57 | mode = "6port-16rss"; |
| 58 | interrupt-parent = <&mbigen_dsa>; |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 59 | reg = <0x0 0xc5000000 0x0 0x890000 |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 60 | 0x0 0xc7000000 0x0 0x60000>; |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 61 | reg-names = "ppe-base", "dsaf-base"; |
| 62 | subctrl-syscon = <&subctrl>; |
| 63 | reset-field-offset = 0; |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 64 | interrupts = <131 4>,<132 4>, <133 4>,<134 4>, |
| 65 | <135 4>,<136 4>, <137 4>,<138 4>, |
| 66 | <139 4>,<140 4>, <141 4>,<142 4>, |
| 67 | <143 4>,<144 4>, <145 4>,<146 4>, |
| 68 | <147 4>,<148 4>, <384 1>,<385 1>, |
| 69 | <386 1>,<387 1>, <388 1>,<389 1>, |
| 70 | <390 1>,<391 1>, |
| 71 | buf-size = <4096>; |
| 72 | desc-num = <1024>; |
| 73 | dma-coherent; |
Yisen.Zhuang\(Zhuangyuzeng\) | 2fc695a | 2016-04-23 17:05:15 +0800 | [diff] [blame] | 74 | |
| 75 | prot@0 { |
| 76 | port-id = 0; |
| 77 | phy-handle = <&phy0>; |
| 78 | serdes-syscon = <&serdes>; |
| 79 | }; |
| 80 | |
| 81 | prot@1 { |
| 82 | port-id = 1; |
| 83 | serdes-syscon = <&serdes>; |
| 84 | }; |
huangdaode | fc7e37c | 2015-09-17 14:51:46 +0800 | [diff] [blame] | 85 | }; |