0001 /*
0002 * Device Tree file for Compulab SBC-A510 Single Board Computer
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 * SBC-A510 comprises a PCA9555 I2C GPIO expander its GPIO lines connected to
0047 *
0048 * 0.0 USB0 VBUS_EN (active high)
0049 * 0.1 USB0 VBUS_GOOD
0050 * 0.2 DVI transmitter TI TFP410 MSEN
0051 * 0.3 DVI transmitter TI TFP410 PD# (active low power down)
0052 * 0.4 LVDS transmitter DS90C365 PD# (active low power down)
0053 * 0.5 LCD nRST (active low reset)
0054 * 0.6 PCIe0 nRST (active low reset)
0055 * 0.7 mini-PCIe slot W_DISABLE#
0056 *
0057 * 1.0 MMC WP
0058 * 1.1 Camera Input FPC FLASH_STB and P21.5
0059 * 1.2 Camera Input FPC WE and P21.22
0060 * 1.3 MMC VCC_EN (active high) and P21.7
0061 * 1.4 Camera Input FPC AFTR_RST and P21.17
0062 * 1.5 Camera Input FPC OE and P21.19
0063 * 1.6 Camera Input FPC SNPSHT and P21.6
0064 * 1.7 Camera Input FPC SHTR and P21.10
0065 */
0066
0067 /dts-v1/;
0068
0069 #include "dove-cm-a510.dtsi"
0070
0071 / {
0072 model = "Compulab SBC-A510";
0073 compatible = "compulab,sbc-a510", "compulab,cm-a510", "marvell,dove";
0074
0075 chosen {
0076 stdout-path = &uart0;
0077 };
0078
0079 regulators {
0080 usb0_power: regulator@2 {
0081 compatible = "regulator-fixed";
0082 regulator-name = "USB Power";
0083 regulator-min-microvolt = <5000000>;
0084 regulator-max-microvolt = <5000000>;
0085 gpio = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;
0086 };
0087
0088 mmc_power: regulator@3 {
0089 compatible = "regulator-fixed";
0090 regulator-name = "MMC Power";
0091 regulator-min-microvolt = <3300000>;
0092 regulator-max-microvolt = <3300000>;
0093 gpio = <&gpio_ext 13 GPIO_ACTIVE_HIGH>;
0094 };
0095 };
0096 };
0097
0098 /* Ethernet0 depends on CM-A510 option E1 */
0099 &mdio { status = "disabled"; };
0100 ð { status = "disabled"; };
0101 ðphy { status = "disabled"; };
0102
0103 /*
0104 * USB port 0 can be powered and monitored by I2C GPIO expander:
0105 * VBUS_ENABLE on GPIO0, VBUS_GOOD on GPIO1
0106 */
0107 &ehci0 {
0108 status = "okay";
0109 vbus-supply = <&usb0_power>;
0110 };
0111
0112 /* USB port 1 (and ports 2, 3 if CM-A510 has U4 option) */
0113 &ehci1 { status = "okay"; };
0114
0115 /*
0116 * I2C bus layout:
0117 * i2c0:
0118 * - Audio Codec, 0x1a (option from CM-A510)
0119 * - DVI transmitter TI TFP410, 0x39
0120 * - HDMI/DVI DDC channel
0121 * i2c1:
0122 * - GPIO expander, NXP PCA9555, 0x20
0123 * - VGA DDC channel
0124 */
0125 &i2c {
0126 pinctrl-0 = <&pmx_i2c1>;
0127 pinctrl-names = "default";
0128 };
0129
0130 &i2c0 {
0131 /* TI TFP410 DVI transmitter */
0132 dvi: video@39 {
0133 compatible = "ti,tfp410";
0134 reg = <0x39>;
0135 powerdown-gpio = <&gpio_ext 3 GPIO_ACTIVE_LOW>;
0136 };
0137 };
0138
0139 &i2c1 {
0140 status = "okay";
0141
0142 /* NXP PCA9555 GPIO expander */
0143 gpio_ext: gpio@20 {
0144 compatible = "nxp,pca9555";
0145 reg = <0x20>;
0146 gpio-controller;
0147 #gpio-cells = <2>;
0148 };
0149 };
0150
0151 &pcie { status = "okay"; };
0152
0153 /*
0154 * PCIe0 can be configured by Jumper E1 to be either connected to
0155 * a mini-PCIe slot or a Pericom PI7C9X111 PCIe-to-PCI bridge.
0156 */
0157 &pcie0 {
0158 status = "okay";
0159 pinctrl-0 = <&pmx_pcie0_clkreq>;
0160 pinctrl-names = "default";
0161 reset-gpios = <&gpio_ext 6 GPIO_ACTIVE_LOW>;
0162 };
0163
0164 /* Ethernet1 depends on CM-A510 option E2 */
0165 &pcie1 { status = "disabled"; };
0166
0167 /* SATA connector */
0168 &sata0 { status = "okay"; };
0169
0170 /*
0171 * SDIO0 is connected to a MMC/SD/SDIO socket, I2C GPIO expander has
0172 * VCC_MMC_ENABLE on GPIO13, MMC_WP on GPIO10
0173 */
0174 &sdio0 {
0175 vmmc-supply = <&mmc_power>;
0176 wp-gpios = <&gpio_ext 10 GPIO_ACTIVE_LOW>;
0177 status = "okay";
0178 };
0179
0180 /* UART0 on RS232 mini-connector */
0181 &uart0 { status = "okay"; };
0182 /* UART2 on pin headers */
0183 &uart2 { status = "okay"; };