1/*
2 * Copyright 2015 Freescale Semiconductor, Inc.
3 * Copyright 2016 Toradex AG
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 *  a) This file is free software; you can redistribute it and/or
11 *     modify it under the terms of the GNU General Public License as
12 *     published by the Free Software Foundation; either version 2 of the
13 *     License, or (at your option) any later version.
14 *
15 *     This file is distributed in the hope that it will be useful,
16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 *     GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 *  b) Permission is hereby granted, free of charge, to any person
23 *     obtaining a copy of this software and associated documentation
24 *     files (the "Software"), to deal in the Software without
25 *     restriction, including without limitation the rights to use,
26 *     copy, modify, merge, publish, distribute, sublicense, and/or
27 *     sell copies of the Software, and to permit persons to whom the
28 *     Software is furnished to do so, subject to the following
29 *     conditions:
30 *
31 *     The above copyright notice and this permission notice shall be
32 *     included in all copies or substantial portions of the Software.
33 *
34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 *     OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include "imx7s.dtsi"
45
46/ {
47	aliases {
48		ethernet1 = &fec2;
49	};
50	cpus {
51		cpu0: cpu@0 {
52			operating-points = <
53				/* KHz	uV */
54				996000	1075000
55				792000	975000
56			>;
57			clock-frequency = <996000000>;
58		};
59
60		cpu1: cpu@1 {
61			compatible = "arm,cortex-a7";
62			device_type = "cpu";
63			reg = <1>;
64			clock-frequency = <996000000>;
65		};
66	};
67
68	soc {
69		etm@3007d000 {
70			compatible = "arm,coresight-etm3x", "arm,primecell";
71			reg = <0x3007d000 0x1000>;
72
73			/*
74			 * System will hang if added nosmp in kernel command line
75			 * without arm,primecell-periphid because amba bus try to
76			 * read id and core1 power off at this time.
77			 */
78			arm,primecell-periphid = <0xbb956>;
79			cpu = <&cpu1>;
80			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
81			clock-names = "apb_pclk";
82
83			port {
84				etm1_out_port: endpoint {
85					remote-endpoint = <&ca_funnel_in_port1>;
86				};
87			};
88		};
89	};
90};
91
92&aips2 {
93	epdc: epdc@306f0000 {
94		compatible = "fsl,imx7d-epdc";
95		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
96		reg = <0x306f0000 0x10000>;
97		clocks = <&clks IMX7D_CLK_DUMMY>, <&clks IMX7D_EPDC_PIXEL_ROOT_CLK>;
98		clock-names = "epdc_axi", "epdc_pix";
99		epdc-ram = <&gpr 0x4 30>;
100		status = "disabled";
101	};
102};
103
104&aips3 {
105	usbotg2: usb@30b20000 {
106		compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
107		reg = <0x30b20000 0x200>;
108		interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
109		clocks = <&clks IMX7D_USB_CTRL_CLK>;
110		fsl,usbphy = <&usbphynop2>;
111		fsl,usbmisc = <&usbmisc2 0>;
112		phy-clkgate-delay-us = <400>;
113		status = "disabled";
114	};
115
116	usbmisc2: usbmisc@30b20200 {
117		#index-cells = <1>;
118		compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
119		reg = <0x30b20200 0x200>;
120	};
121
122	usbphynop2: usbphynop2 {
123		compatible = "usb-nop-xceiv";
124		clocks = <&clks IMX7D_USB_PHY2_CLK>;
125		clock-names = "main_clk";
126	};
127
128	fec2: ethernet@30bf0000 {
129		compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
130		reg = <0x30bf0000 0x10000>;
131		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
132			<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
133			<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
134		clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
135			<&clks IMX7D_ENET_AXI_ROOT_CLK>,
136			<&clks IMX7D_ENET2_TIME_ROOT_CLK>,
137			<&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
138			<&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
139		clock-names = "ipg", "ahb", "ptp",
140			"enet_clk_ref", "enet_out";
141		fsl,num-tx-queues=<3>;
142		fsl,num-rx-queues=<3>;
143		status = "disabled";
144	};
145};
146
147&ca_funnel_ports {
148	port@1 {
149		reg = <1>;
150		ca_funnel_in_port1: endpoint {
151			slave-mode;
152			remote-endpoint = <&etm1_out_port>;
153		};
154	};
155};
156