1/*
2 * Device Tree Source for K2G Netcp driver
3 *
4 * Copyright 2015 Texas Instruments, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11qmss: qmss@4020000 {
12	compatible = "ti,keystone-navigator-qmss-l";
13	dma-coherent;
14	#address-cells = <1>;
15	#size-cells = <1>;
16	/* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
17	/* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_VCLK>; */
18	clock-names = "nss_vclk";
19	ranges;
20	queue-range	= <0 0x80>;
21	linkram0	= <0x4020000 0x7ff>;
22
23	qmgrs {
24		#address-cells = <1>;
25		#size-cells = <1>;
26		ranges;
27		qmgr0 {
28			managed-queues = <0 0x80>;
29			reg = <0x4100000 0x800>,
30			      <0x4040000 0x100>,
31			      <0x4080000 0x800>,
32			      <0x40c0000 0x800>;
33			reg-names = "peek", "config",
34				    "region", "push";
35		};
36
37	};
38	queue-pools {
39		qpend {
40			qpend-0 {
41				qrange = <77 8>;
42				interrupts =<0 308 0xf04 0 309 0xf04 0 310 0xf04
43					     0 311 0xf04 0 312 0xf04 0 313 0xf04
44					     0 314 0xf04 0 315 0xf04>;
45				qalloc-by-id;
46			};
47		};
48		general-purpose {
49			gp-0 {
50				qrange = <112 8>;
51			};
52			netcp-tx {
53				qrange = <5 8>;
54				qalloc-by-id;
55			};
56		};
57	};
58
59	descriptor-regions {
60		#address-cells = <1>;
61		#size-cells = <1>;
62		ranges;
63		region-12 {
64			id = <12>;
65			region-spec = <1023 128>; /* num_desc desc_size */
66			link-index = <0x400>;
67		};
68	};
69}; /* qmss */
70
71knav_dmas: knav_dmas@0 {
72	compatible = "ti,keystone-navigator-dma";
73	#address-cells = <1>;
74	#size-cells = <1>;
75	/* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
76	/* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_VCLK>; */
77	clock-names = "nss_vclk";
78	ranges;
79	ti,navigator-cloud-address = <0x40c0000 0x40c0000 0x40c0000 0x40c0000>;
80
81	dma_gbe: dma_gbe@0 {
82		reg = <0x4010000 0x100>,
83			  <0x4011000 0x2a0>, /* 21 Tx channels */
84			  <0x4012000 0x400>, /* 32 Rx channels */
85			  <0x4010100 0x80>,
86			  <0x4013000 0x400>; /* 32 Rx flows */
87		reg-names = "global", "txchan", "rxchan",
88				"txsched", "rxflow";
89	};
90
91};
92
93gbe_subsys: subsys@4200000 {
94	compatible = "syscon";
95	reg = <0x4200000 0x100>;
96};
97
98netcp: netcp@4000000 {
99	reg = <0x2620110 0x8>;
100	reg-names = "efuse";
101	compatible = "ti,netcp-1.0";
102	status = "disabled";
103	#address-cells = <1>;
104	#size-cells = <1>;
105	/* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
106	/* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_ESW_CLK>; */
107	clock-names = "ethss_clk";
108
109	/* NetCP address range */
110	ranges = <0 0x4000000 0x1000000>;
111
112	dma-coherent;
113
114	ti,navigator-dmas = <&dma_gbe 0>, <&dma_gbe 5>;
115	ti,navigator-dma-names = "netrx0", "nettx";
116
117	netcp-devices {
118		#address-cells = <1>;
119		#size-cells = <1>;
120		ranges;
121		gbe@200000 {
122			label = "netcp-gbe";
123			compatible = "ti,netcp-gbe-2";
124			syscon-subsys = <&gbe_subsys>;
125			reg = <0x200100 0xe00>, <0x220000 0x20000>;
126			/* enable-ale; */
127			tx-queue = <5>;
128			tx-channel = "nettx";
129
130			interfaces {
131				gbe0: interface-0 {
132					slave-port = <0>;
133					link-interface	= <5>;
134				};
135			};
136		};
137	};
138
139	netcp-interfaces {
140		interface-0 {
141			rx-channel = "netrx0";
142			rx-pool = <512 12>;
143			tx-pool = <511 12>;
144			rx-queue-depth = <128 128 0 0>;
145			rx-buffer-size = <1518 4096 0 0>;
146			rx-queue = <77>;
147			tx-completion-queue = <78>;
148			efuse-mac = <1>;
149			netcp-gbe = <&gbe0>;
150		};
151	};
152};
153