1896dd272SSebastian Hesselbarth/* 2896dd272SSebastian Hesselbarth * Device Tree include for Compulab CM-A510 System-on-Module 3896dd272SSebastian Hesselbarth * 4896dd272SSebastian Hesselbarth * Copyright (C) 2015, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> 5896dd272SSebastian Hesselbarth * 6896dd272SSebastian Hesselbarth * This file is dual-licensed: you can use it either under the terms 7896dd272SSebastian Hesselbarth * of the GPL or the X11 license, at your option. Note that this dual 8896dd272SSebastian Hesselbarth * licensing only applies to this file, and not this project as a 9896dd272SSebastian Hesselbarth * whole. 10896dd272SSebastian Hesselbarth * 11896dd272SSebastian Hesselbarth * a) This file is free software; you can redistribute it and/or 12896dd272SSebastian Hesselbarth * modify it under the terms of the GNU General Public License as 13896dd272SSebastian Hesselbarth * published by the Free Software Foundation; version 2 of the 14896dd272SSebastian Hesselbarth * License. 15896dd272SSebastian Hesselbarth * 1624f0b6feSAlexandre Belloni * This file is distributed in the hope that it will be useful, 17896dd272SSebastian Hesselbarth * but WITHOUT ANY WARRANTY; without even the implied warranty of 18896dd272SSebastian Hesselbarth * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19896dd272SSebastian Hesselbarth * GNU General Public License for more details. 20896dd272SSebastian Hesselbarth * 2124f0b6feSAlexandre Belloni * Or, alternatively, 22896dd272SSebastian Hesselbarth * 23896dd272SSebastian Hesselbarth * b) Permission is hereby granted, free of charge, to any person 24896dd272SSebastian Hesselbarth * obtaining a copy of this software and associated documentation 25896dd272SSebastian Hesselbarth * files (the "Software"), to deal in the Software without 2624f0b6feSAlexandre Belloni * restriction, including without limitation the rights to use, 27896dd272SSebastian Hesselbarth * copy, modify, merge, publish, distribute, sublicense, and/or 28896dd272SSebastian Hesselbarth * sell copies of the Software, and to permit persons to whom the 29896dd272SSebastian Hesselbarth * Software is furnished to do so, subject to the following 30896dd272SSebastian Hesselbarth * conditions: 31896dd272SSebastian Hesselbarth * 32896dd272SSebastian Hesselbarth * The above copyright notice and this permission notice shall be 33896dd272SSebastian Hesselbarth * included in all copies or substantial portions of the Software. 34896dd272SSebastian Hesselbarth * 3524f0b6feSAlexandre Belloni * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36896dd272SSebastian Hesselbarth * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37896dd272SSebastian Hesselbarth * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38896dd272SSebastian Hesselbarth * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 3924f0b6feSAlexandre Belloni * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40896dd272SSebastian Hesselbarth * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41896dd272SSebastian Hesselbarth * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42896dd272SSebastian Hesselbarth * OTHER DEALINGS IN THE SOFTWARE. 43896dd272SSebastian Hesselbarth */ 44896dd272SSebastian Hesselbarth 45896dd272SSebastian Hesselbarth/* 46896dd272SSebastian Hesselbarth * The CM-A510 comes with several optional components: 47896dd272SSebastian Hesselbarth * 48896dd272SSebastian Hesselbarth * Memory options: 49896dd272SSebastian Hesselbarth * D512: 512M 50896dd272SSebastian Hesselbarth * D1024: 1G 51896dd272SSebastian Hesselbarth * 52896dd272SSebastian Hesselbarth * NAND options: 53896dd272SSebastian Hesselbarth * N512: 512M NAND 54896dd272SSebastian Hesselbarth * 55896dd272SSebastian Hesselbarth * Ethernet options: 56896dd272SSebastian Hesselbarth * E1: PHY RTL8211D on internal GbE (SMI address 0x03) 57896dd272SSebastian Hesselbarth * E2: Additional ethernet NIC RTL8111D on PCIe1 58896dd272SSebastian Hesselbarth * 59896dd272SSebastian Hesselbarth * Audio options: 60896dd272SSebastian Hesselbarth * A: TI TLV320AIC23b audio codec (I2C address 0x1a) 61896dd272SSebastian Hesselbarth * 62896dd272SSebastian Hesselbarth * Touchscreen options: 63896dd272SSebastian Hesselbarth * I: TI TSC2046 touchscreen controller (on SPI1) 64896dd272SSebastian Hesselbarth * 65896dd272SSebastian Hesselbarth * USB options: 66896dd272SSebastian Hesselbarth * U2: 2 dual-role USB2.0 ports 67896dd272SSebastian Hesselbarth * U4: 2 additional USB2.0 host ports (via USB1) 68896dd272SSebastian Hesselbarth * 69896dd272SSebastian Hesselbarth * WiFi options: 70896dd272SSebastian Hesselbarth * W: Broadcom BCM4319 802.11b/g/n (USI WM-N-BM-01 on SDIO1) 71896dd272SSebastian Hesselbarth * 72896dd272SSebastian Hesselbarth * GPIOs used on CM-A510: 73896dd272SSebastian Hesselbarth * 1 GbE PHY reset (active low) 74896dd272SSebastian Hesselbarth * 3 WakeUp 75896dd272SSebastian Hesselbarth * 8 PowerOff (active low) 76896dd272SSebastian Hesselbarth * 13 Touchscreen pen irq (active low) 77896dd272SSebastian Hesselbarth * 65 System LED (active high) 78896dd272SSebastian Hesselbarth * 69 USB Hub reset (active low) 79896dd272SSebastian Hesselbarth * 70 WLAN reset (active low) 80896dd272SSebastian Hesselbarth * 71 WLAN regulator (active high) 81896dd272SSebastian Hesselbarth */ 82896dd272SSebastian Hesselbarth 83896dd272SSebastian Hesselbarth#include "dove.dtsi" 84896dd272SSebastian Hesselbarth 85896dd272SSebastian Hesselbarth/ { 86896dd272SSebastian Hesselbarth model = "Compulab CM-A510"; 87896dd272SSebastian Hesselbarth compatible = "compulab,cm-a510", "marvell,dove"; 88896dd272SSebastian Hesselbarth 89896dd272SSebastian Hesselbarth /* 90896dd272SSebastian Hesselbarth * Set the minimum memory size here and let the 91896dd272SSebastian Hesselbarth * bootloader set the real size. 92896dd272SSebastian Hesselbarth */ 93896dd272SSebastian Hesselbarth memory { 94896dd272SSebastian Hesselbarth device_type = "memory"; 95896dd272SSebastian Hesselbarth reg = <0x00000000 0x20000000>; 96896dd272SSebastian Hesselbarth }; 97896dd272SSebastian Hesselbarth 98896dd272SSebastian Hesselbarth leds { 99896dd272SSebastian Hesselbarth compatible = "gpio-leds"; 100896dd272SSebastian Hesselbarth /* Set upper NAND data bit to GPO */ 101896dd272SSebastian Hesselbarth pinctrl-0 = <&pmx_nand_gpo>; 102896dd272SSebastian Hesselbarth pinctrl-names = "default"; 103896dd272SSebastian Hesselbarth 10430a39ce8SKrzysztof Kozlowski led-system { 105896dd272SSebastian Hesselbarth label = "cm-a510:system:green"; 106896dd272SSebastian Hesselbarth gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; 107896dd272SSebastian Hesselbarth default-state = "keep"; 108896dd272SSebastian Hesselbarth }; 109896dd272SSebastian Hesselbarth }; 110896dd272SSebastian Hesselbarth 111*afc19882SKrzysztof Kozlowski wifi_power: regulator-1 { 112896dd272SSebastian Hesselbarth compatible = "regulator-fixed"; 113896dd272SSebastian Hesselbarth regulator-name = "WiFi Power"; 114896dd272SSebastian Hesselbarth regulator-min-microvolt = <3300000>; 115896dd272SSebastian Hesselbarth regulator-max-microvolt = <3300000>; 116896dd272SSebastian Hesselbarth gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>; 117896dd272SSebastian Hesselbarth }; 118896dd272SSebastian Hesselbarth}; 119896dd272SSebastian Hesselbarth 120896dd272SSebastian Hesselbarth/* Optional RTL8211D GbE PHY on SMI address 0x03 */ 12112cb7a33SMichał Grzelak&mdio { 12212cb7a33SMichał Grzelak ethphy: ethernet-phy@3 { 123896dd272SSebastian Hesselbarth reg = <3>; 124896dd272SSebastian Hesselbarth status = "disabled"; 125896dd272SSebastian Hesselbarth }; 12612cb7a33SMichał Grzelak}; 12712cb7a33SMichał Grzelak 12812cb7a33SMichał Grzelakð { 12912cb7a33SMichał Grzelak ethernet-port@0 { 13012cb7a33SMichał Grzelak phy-handle = <ðphy>; 13112cb7a33SMichał Grzelak }; 13212cb7a33SMichał Grzelak}; 133896dd272SSebastian Hesselbarth 134896dd272SSebastian Hesselbarth&i2c0 { 135896dd272SSebastian Hesselbarth /* Optional TI TLV320AIC23b audio codec */ 136896dd272SSebastian Hesselbarth opt_audio: audio@1a { 137896dd272SSebastian Hesselbarth compatible = "ti,tlv320aic23"; 138896dd272SSebastian Hesselbarth reg = <0x1a>; 139896dd272SSebastian Hesselbarth status = "disabled"; 140896dd272SSebastian Hesselbarth }; 141896dd272SSebastian Hesselbarth}; 142896dd272SSebastian Hesselbarth 143896dd272SSebastian Hesselbarth/* Optional RTL8111D GbE NIC on PCIe1 */ 144896dd272SSebastian Hesselbarth&pcie { status = "disabled"; }; 145896dd272SSebastian Hesselbarth 146896dd272SSebastian Hesselbarth&pcie1 { 147896dd272SSebastian Hesselbarth pinctrl-0 = <&pmx_pcie1_clkreq>; 148896dd272SSebastian Hesselbarth pinctrl-names = "default"; 149896dd272SSebastian Hesselbarth status = "disabled"; 150896dd272SSebastian Hesselbarth}; 151896dd272SSebastian Hesselbarth 152896dd272SSebastian Hesselbarth&pinctrl { 153896dd272SSebastian Hesselbarth pmx_uart2: pmx-uart2 { 154896dd272SSebastian Hesselbarth marvell,pins = "mpp14", "mpp15"; 155896dd272SSebastian Hesselbarth marvell,function = "uart2"; 156896dd272SSebastian Hesselbarth }; 157896dd272SSebastian Hesselbarth}; 158896dd272SSebastian Hesselbarth 159896dd272SSebastian Hesselbarth/* Optional Broadcom BCM4319 802.11b/g/n WiFi module */ 160896dd272SSebastian Hesselbarth&sdio1 { 161896dd272SSebastian Hesselbarth non-removable; 162896dd272SSebastian Hesselbarth vmmc-supply = <&wifi_power>; 163896dd272SSebastian Hesselbarth reset-gpio = <&gpio2 6 GPIO_ACTIVE_LOW>; 164896dd272SSebastian Hesselbarth status = "disabled"; 165896dd272SSebastian Hesselbarth}; 166896dd272SSebastian Hesselbarth 167896dd272SSebastian Hesselbarth&spi0 { 168896dd272SSebastian Hesselbarth status = "okay"; 169896dd272SSebastian Hesselbarth 170896dd272SSebastian Hesselbarth /* 1M Flash Winbond W25Q80BL */ 171896dd272SSebastian Hesselbarth flash@0 { 172896dd272SSebastian Hesselbarth compatible = "winbond,w25q80"; 173896dd272SSebastian Hesselbarth spi-max-frequency = <80000000>; 174896dd272SSebastian Hesselbarth reg = <0>; 175896dd272SSebastian Hesselbarth }; 176896dd272SSebastian Hesselbarth}; 177896dd272SSebastian Hesselbarth 178896dd272SSebastian Hesselbarth&spi1 { 179896dd272SSebastian Hesselbarth pinctrl-0 = <&pmx_spi1_20_23>; 180896dd272SSebastian Hesselbarth pinctrl-names = "default"; 181896dd272SSebastian Hesselbarth status = "disabled"; 182896dd272SSebastian Hesselbarth 183896dd272SSebastian Hesselbarth /* Optional TI TSC2046 touchscreen controller */ 184896dd272SSebastian Hesselbarth opt_touch: touchscreen@0 { 185896dd272SSebastian Hesselbarth compatible = "ti,tsc2046"; 186896dd272SSebastian Hesselbarth spi-max-frequency = <2500000>; 187896dd272SSebastian Hesselbarth reg = <0>; 188896dd272SSebastian Hesselbarth pinctrl-0 = <&pmx_gpio_13>; 189896dd272SSebastian Hesselbarth pinctrl-names = "default"; 190896dd272SSebastian Hesselbarth interrupts-extended = <&gpio0 13 IRQ_TYPE_EDGE_FALLING>; 191896dd272SSebastian Hesselbarth }; 192896dd272SSebastian Hesselbarth}; 193896dd272SSebastian Hesselbarth 194896dd272SSebastian Hesselbarth&uart2 { 195896dd272SSebastian Hesselbarth pinctrl-0 = <&pmx_uart2>; 196896dd272SSebastian Hesselbarth pinctrl-names = "default"; 197896dd272SSebastian Hesselbarth}; 198