1724ba675SRob Herring/*
2724ba675SRob Herring * Device Tree include for Compulab CM-A510 System-on-Module
3724ba675SRob Herring *
4724ba675SRob Herring * Copyright (C) 2015, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
5724ba675SRob Herring *
6724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms
7724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual
8724ba675SRob Herring * licensing only applies to this file, and not this project as a
9724ba675SRob Herring * whole.
10724ba675SRob Herring *
11724ba675SRob Herring *  a) This file is free software; you can redistribute it and/or
12724ba675SRob Herring *     modify it under the terms of the GNU General Public License as
13724ba675SRob Herring *     published by the Free Software Foundation; version 2 of the
14724ba675SRob Herring *     License.
15724ba675SRob Herring *
16724ba675SRob Herring *     This file is distributed in the hope that it will be useful,
17724ba675SRob Herring *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18724ba675SRob Herring *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19724ba675SRob Herring *     GNU General Public License for more details.
20724ba675SRob Herring *
21724ba675SRob Herring * Or, alternatively,
22724ba675SRob Herring *
23724ba675SRob Herring *  b) Permission is hereby granted, free of charge, to any person
24724ba675SRob Herring *     obtaining a copy of this software and associated documentation
25724ba675SRob Herring *     files (the "Software"), to deal in the Software without
26724ba675SRob Herring *     restriction, including without limitation the rights to use,
27724ba675SRob Herring *     copy, modify, merge, publish, distribute, sublicense, and/or
28724ba675SRob Herring *     sell copies of the Software, and to permit persons to whom the
29724ba675SRob Herring *     Software is furnished to do so, subject to the following
30724ba675SRob Herring *     conditions:
31724ba675SRob Herring *
32724ba675SRob Herring *     The above copyright notice and this permission notice shall be
33724ba675SRob Herring *     included in all copies or substantial portions of the Software.
34724ba675SRob Herring *
35724ba675SRob Herring *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36724ba675SRob Herring *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37724ba675SRob Herring *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38724ba675SRob Herring *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39724ba675SRob Herring *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40724ba675SRob Herring *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41724ba675SRob Herring *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42724ba675SRob Herring *     OTHER DEALINGS IN THE SOFTWARE.
43724ba675SRob Herring */
44724ba675SRob Herring
45724ba675SRob Herring/*
46724ba675SRob Herring * The CM-A510 comes with several optional components:
47724ba675SRob Herring *
48724ba675SRob Herring * Memory options:
49724ba675SRob Herring *  D512: 512M
50724ba675SRob Herring *  D1024: 1G
51724ba675SRob Herring *
52724ba675SRob Herring * NAND options:
53724ba675SRob Herring *  N512: 512M NAND
54724ba675SRob Herring *
55724ba675SRob Herring * Ethernet options:
56724ba675SRob Herring *  E1: PHY RTL8211D on internal GbE (SMI address 0x03)
57724ba675SRob Herring *  E2: Additional ethernet NIC RTL8111D on PCIe1
58724ba675SRob Herring *
59724ba675SRob Herring * Audio options:
60724ba675SRob Herring *  A: TI TLV320AIC23b audio codec (I2C address 0x1a)
61724ba675SRob Herring *
62724ba675SRob Herring * Touchscreen options:
63724ba675SRob Herring *  I: TI TSC2046 touchscreen controller (on SPI1)
64724ba675SRob Herring *
65724ba675SRob Herring * USB options:
66724ba675SRob Herring *  U2: 2 dual-role USB2.0 ports
67724ba675SRob Herring *  U4: 2 additional USB2.0 host ports (via USB1)
68724ba675SRob Herring *
69724ba675SRob Herring * WiFi options:
70724ba675SRob Herring *  W: Broadcom BCM4319 802.11b/g/n (USI WM-N-BM-01 on SDIO1)
71724ba675SRob Herring *
72724ba675SRob Herring * GPIOs used on CM-A510:
73724ba675SRob Herring *   1 GbE PHY reset (active low)
74724ba675SRob Herring *   3 WakeUp
75724ba675SRob Herring *   8 PowerOff (active low)
76724ba675SRob Herring *  13 Touchscreen pen irq (active low)
77724ba675SRob Herring *  65 System LED (active high)
78724ba675SRob Herring *  69 USB Hub reset (active low)
79724ba675SRob Herring *  70 WLAN reset (active low)
80724ba675SRob Herring *  71 WLAN regulator (active high)
81724ba675SRob Herring */
82724ba675SRob Herring
83724ba675SRob Herring#include "dove.dtsi"
84724ba675SRob Herring
85724ba675SRob Herring/ {
86724ba675SRob Herring	model = "Compulab CM-A510";
87724ba675SRob Herring	compatible = "compulab,cm-a510", "marvell,dove";
88724ba675SRob Herring
89724ba675SRob Herring	/*
90724ba675SRob Herring	 * Set the minimum memory size here and let the
91724ba675SRob Herring	 * bootloader set the real size.
92724ba675SRob Herring	 */
93724ba675SRob Herring	memory {
94724ba675SRob Herring		device_type = "memory";
95724ba675SRob Herring		reg = <0x00000000 0x20000000>;
96724ba675SRob Herring	};
97724ba675SRob Herring
98724ba675SRob Herring	leds {
99724ba675SRob Herring		compatible = "gpio-leds";
100724ba675SRob Herring		/* Set upper NAND data bit to GPO */
101724ba675SRob Herring		pinctrl-0 = <&pmx_nand_gpo>;
102724ba675SRob Herring		pinctrl-names = "default";
103724ba675SRob Herring
104724ba675SRob Herring		led-system {
105724ba675SRob Herring			label = "cm-a510:system:green";
106724ba675SRob Herring			gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
107724ba675SRob Herring			default-state = "keep";
108724ba675SRob Herring		};
109724ba675SRob Herring	};
110724ba675SRob Herring
111*afc19882SKrzysztof Kozlowski	wifi_power: regulator-1 {
112724ba675SRob Herring		compatible = "regulator-fixed";
113724ba675SRob Herring		regulator-name = "WiFi Power";
114724ba675SRob Herring		regulator-min-microvolt = <3300000>;
115724ba675SRob Herring		regulator-max-microvolt = <3300000>;
116724ba675SRob Herring		gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
117724ba675SRob Herring	};
118724ba675SRob Herring};
119724ba675SRob Herring
120724ba675SRob Herring/* Optional RTL8211D GbE PHY on SMI address 0x03 */
121724ba675SRob Herring&mdio {
122724ba675SRob Herring	ethphy: ethernet-phy@3 {
123724ba675SRob Herring		reg = <3>;
124724ba675SRob Herring		status = "disabled";
125724ba675SRob Herring	};
126724ba675SRob Herring};
127724ba675SRob Herring
128724ba675SRob Herring&eth {
129724ba675SRob Herring	ethernet-port@0 {
130724ba675SRob Herring		phy-handle = <&ethphy>;
131724ba675SRob Herring	};
132724ba675SRob Herring};
133724ba675SRob Herring
134724ba675SRob Herring&i2c0 {
135724ba675SRob Herring	/* Optional TI TLV320AIC23b audio codec */
136724ba675SRob Herring	opt_audio: audio@1a {
137724ba675SRob Herring		compatible = "ti,tlv320aic23";
138724ba675SRob Herring		reg = <0x1a>;
139724ba675SRob Herring		status = "disabled";
140724ba675SRob Herring	};
141724ba675SRob Herring};
142724ba675SRob Herring
143724ba675SRob Herring/* Optional RTL8111D GbE NIC on PCIe1 */
144724ba675SRob Herring&pcie { status = "disabled"; };
145724ba675SRob Herring
146724ba675SRob Herring&pcie1 {
147724ba675SRob Herring	pinctrl-0 = <&pmx_pcie1_clkreq>;
148724ba675SRob Herring	pinctrl-names = "default";
149724ba675SRob Herring	status = "disabled";
150724ba675SRob Herring};
151724ba675SRob Herring
152724ba675SRob Herring&pinctrl {
153724ba675SRob Herring	pmx_uart2: pmx-uart2 {
154724ba675SRob Herring		marvell,pins = "mpp14", "mpp15";
155724ba675SRob Herring		marvell,function = "uart2";
156724ba675SRob Herring	};
157724ba675SRob Herring};
158724ba675SRob Herring
159724ba675SRob Herring/* Optional Broadcom BCM4319 802.11b/g/n WiFi module */
160724ba675SRob Herring&sdio1 {
161724ba675SRob Herring	non-removable;
162724ba675SRob Herring	vmmc-supply = <&wifi_power>;
163724ba675SRob Herring	reset-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
164724ba675SRob Herring	status = "disabled";
165724ba675SRob Herring};
166724ba675SRob Herring
167724ba675SRob Herring&spi0 {
168724ba675SRob Herring	status = "okay";
169724ba675SRob Herring
170724ba675SRob Herring	/* 1M Flash Winbond W25Q80BL */
171724ba675SRob Herring	flash@0 {
172724ba675SRob Herring		compatible = "winbond,w25q80";
173724ba675SRob Herring		spi-max-frequency = <80000000>;
174724ba675SRob Herring		reg = <0>;
175724ba675SRob Herring	};
176724ba675SRob Herring};
177724ba675SRob Herring
178724ba675SRob Herring&spi1 {
179724ba675SRob Herring	pinctrl-0 = <&pmx_spi1_20_23>;
180724ba675SRob Herring	pinctrl-names = "default";
181724ba675SRob Herring	status = "disabled";
182724ba675SRob Herring
183724ba675SRob Herring	/* Optional TI TSC2046 touchscreen controller */
184724ba675SRob Herring	opt_touch: touchscreen@0 {
185724ba675SRob Herring		compatible = "ti,tsc2046";
186724ba675SRob Herring		spi-max-frequency = <2500000>;
187724ba675SRob Herring		reg = <0>;
188724ba675SRob Herring		pinctrl-0 = <&pmx_gpio_13>;
189724ba675SRob Herring		pinctrl-names = "default";
190724ba675SRob Herring		interrupts-extended = <&gpio0 13 IRQ_TYPE_EDGE_FALLING>;
191724ba675SRob Herring	};
192724ba675SRob Herring};
193724ba675SRob Herring
194724ba675SRob Herring&uart2 {
195724ba675SRob Herring	pinctrl-0 = <&pmx_uart2>;
196724ba675SRob Herring	pinctrl-names = "default";
197724ba675SRob Herring};
198