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	#address-cells = <1>;
103	#size-cells = <1>;
104	/* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
105	/* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_ESW_CLK>; */
106	clock-names = "ethss_clk";
107
108	/* NetCP address range */
109	ranges = <0 0x4000000 0x1000000>;
110
111	dma-coherent;
112
113	ti,navigator-dmas = <&dma_gbe 0>, <&dma_gbe 5>;
114	ti,navigator-dma-names = "netrx0", "nettx";
115
116	netcp-devices {
117		#address-cells = <1>;
118		#size-cells = <1>;
119		ranges;
120		gbe@200000 {
121			label = "netcp-gbe";
122			compatible = "ti,netcp-gbe-2";
123			syscon-subsys = <&gbe_subsys>;
124			reg = <0x200100 0xe00>, <0x220000 0x20000>;
125			/* enable-ale; */
126			tx-queue = <5>;
127			tx-channel = "nettx";
128
129			interfaces {
130				gbe0: interface-0 {
131					slave-port = <0>;
132					link-interface	= <5>;
133				};
134			};
135		};
136	};
137
138	netcp-interfaces {
139		interface-0 {
140			rx-channel = "netrx0";
141			rx-pool = <512 12>;
142			tx-pool = <511 12>;
143			rx-queue-depth = <128 128 0 0>;
144			rx-buffer-size = <1518 4096 0 0>;
145			rx-queue = <77>;
146			tx-completion-queue = <78>;
147			efuse-mac = <1>;
148			netcp-gbe = <&gbe0>;
149		};
150	};
151};
152