0001 /*
0002 * Device Tree include for Compulab CM-A510 System-on-Module
0003 *
0004 * Copyright (C) 2015, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
0005 *
0006 * This file is dual-licensed: you can use it either under the terms
0007 * of the GPL or the X11 license, at your option. Note that this dual
0008 * licensing only applies to this file, and not this project as a
0009 * whole.
0010 *
0011 * a) This file is free software; you can redistribute it and/or
0012 * modify it under the terms of the GNU General Public License as
0013 * published by the Free Software Foundation; version 2 of the
0014 * License.
0015 *
0016 * This file is distributed in the hope that it will be useful,
0017 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0019 * GNU General Public License for more details.
0020 *
0021 * Or, alternatively,
0022 *
0023 * b) Permission is hereby granted, free of charge, to any person
0024 * obtaining a copy of this software and associated documentation
0025 * files (the "Software"), to deal in the Software without
0026 * restriction, including without limitation the rights to use,
0027 * copy, modify, merge, publish, distribute, sublicense, and/or
0028 * sell copies of the Software, and to permit persons to whom the
0029 * Software is furnished to do so, subject to the following
0030 * conditions:
0031 *
0032 * The above copyright notice and this permission notice shall be
0033 * included in all copies or substantial portions of the Software.
0034 *
0035 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0036 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0037 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0038 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0039 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0040 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0041 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0042 * OTHER DEALINGS IN THE SOFTWARE.
0043 */
0044
0045 /*
0046 * The CM-A510 comes with several optional components:
0047 *
0048 * Memory options:
0049 * D512: 512M
0050 * D1024: 1G
0051 *
0052 * NAND options:
0053 * N512: 512M NAND
0054 *
0055 * Ethernet options:
0056 * E1: PHY RTL8211D on internal GbE (SMI address 0x03)
0057 * E2: Additional ethernet NIC RTL8111D on PCIe1
0058 *
0059 * Audio options:
0060 * A: TI TLV320AIC23b audio codec (I2C address 0x1a)
0061 *
0062 * Touchscreen options:
0063 * I: TI TSC2046 touchscreen controller (on SPI1)
0064 *
0065 * USB options:
0066 * U2: 2 dual-role USB2.0 ports
0067 * U4: 2 additional USB2.0 host ports (via USB1)
0068 *
0069 * WiFi options:
0070 * W: Broadcom BCM4319 802.11b/g/n (USI WM-N-BM-01 on SDIO1)
0071 *
0072 * GPIOs used on CM-A510:
0073 * 1 GbE PHY reset (active low)
0074 * 3 WakeUp
0075 * 8 PowerOff (active low)
0076 * 13 Touchscreen pen irq (active low)
0077 * 65 System LED (active high)
0078 * 69 USB Hub reset (active low)
0079 * 70 WLAN reset (active low)
0080 * 71 WLAN regulator (active high)
0081 */
0082
0083 #include "dove.dtsi"
0084
0085 / {
0086 model = "Compulab CM-A510";
0087 compatible = "compulab,cm-a510", "marvell,dove";
0088
0089 /*
0090 * Set the minimum memory size here and let the
0091 * bootloader set the real size.
0092 */
0093 memory {
0094 device_type = "memory";
0095 reg = <0x00000000 0x20000000>;
0096 };
0097
0098 leds {
0099 compatible = "gpio-leds";
0100 /* Set upper NAND data bit to GPO */
0101 pinctrl-0 = <&pmx_nand_gpo>;
0102 pinctrl-names = "default";
0103
0104 system {
0105 label = "cm-a510:system:green";
0106 gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
0107 default-state = "keep";
0108 };
0109 };
0110
0111 regulators {
0112 compatible = "simple-bus";
0113 #address-cells = <1>;
0114 #size-cells = <0>;
0115
0116 wifi_power: regulator@1 {
0117 compatible = "regulator-fixed";
0118 regulator-name = "WiFi Power";
0119 regulator-min-microvolt = <3300000>;
0120 regulator-max-microvolt = <3300000>;
0121 gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
0122 };
0123 };
0124 };
0125
0126 /* Optional RTL8211D GbE PHY on SMI address 0x03 */
0127 ðphy {
0128 reg = <3>;
0129 status = "disabled";
0130 };
0131
0132 &i2c0 {
0133 /* Optional TI TLV320AIC23b audio codec */
0134 opt_audio: audio@1a {
0135 compatible = "ti,tlv320aic23";
0136 reg = <0x1a>;
0137 status = "disabled";
0138 };
0139 };
0140
0141 /* Optional RTL8111D GbE NIC on PCIe1 */
0142 &pcie { status = "disabled"; };
0143
0144 &pcie1 {
0145 pinctrl-0 = <&pmx_pcie1_clkreq>;
0146 pinctrl-names = "default";
0147 status = "disabled";
0148 };
0149
0150 &pinctrl {
0151 pmx_uart2: pmx-uart2 {
0152 marvell,pins = "mpp14", "mpp15";
0153 marvell,function = "uart2";
0154 };
0155 };
0156
0157 /* Optional Broadcom BCM4319 802.11b/g/n WiFi module */
0158 &sdio1 {
0159 non-removable;
0160 vmmc-supply = <&wifi_power>;
0161 reset-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>;
0162 status = "disabled";
0163 };
0164
0165 &spi0 {
0166 status = "okay";
0167
0168 /* 1M Flash Winbond W25Q80BL */
0169 flash@0 {
0170 compatible = "winbond,w25q80";
0171 spi-max-frequency = <80000000>;
0172 reg = <0>;
0173 };
0174 };
0175
0176 &spi1 {
0177 pinctrl-0 = <&pmx_spi1_20_23>;
0178 pinctrl-names = "default";
0179 status = "disabled";
0180
0181 /* Optional TI TSC2046 touchscreen controller */
0182 opt_touch: touchscreen@0 {
0183 compatible = "ti,tsc2046";
0184 spi-max-frequency = <2500000>;
0185 reg = <0>;
0186 pinctrl-0 = <&pmx_gpio_13>;
0187 pinctrl-names = "default";
0188 interrupts-extended = <&gpio0 13 IRQ_TYPE_EDGE_FALLING>;
0189 };
0190 };
0191
0192 &uart2 {
0193 pinctrl-0 = <&pmx_uart2>;
0194 pinctrl-names = "default";
0195 };