Back to home page

OSCL-LXR

 
 

    


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 &ethphy {
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 };