ARM: dts: socfpga: Add samtec VIN|ING board
authorMarek Vasut <marex@denx.de>
Wed, 13 Apr 2016 12:24:58 +0000 (12:24 +0000)
committerDinh Nguyen <dinguyen@opensource.altera.com>
Fri, 22 Apr 2016 15:09:02 +0000 (10:09 -0500)
Add support for board based on the popular Altera Cyclone V SoC.
This board has the following properties:
 - 1 GiB of DRAM
 - 1 Gigabit ethernet
 - 1 USB gadget port
 - 1 USB host port with an on-board hub
 - 2 QSPI NORs connected to the Cadence QSPI core
 - Multiple I2C EEPROMs and one I2C temperature sensor

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts [new file with mode: 0644]

index 95c1923..c2c9c04 100644 (file)
@@ -608,6 +608,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \
        socfpga_cyclone5_de0_sockit.dtb \
        socfpga_cyclone5_sockit.dtb \
        socfpga_cyclone5_socrates.dtb \
+       socfpga_cyclone5_vining_fpga.dtb \
        socfpga_vt.dtb
 dtb-$(CONFIG_ARCH_SPEAR13XX) += \
        spear1310-evb.dtb \
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
new file mode 100644 (file)
index 0000000..a3601e4
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+ *  Copyright (C) 2015 Marek Vasut <marex@denx.de>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of
+ *     the License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ *     You should have received a copy of the GNU General Public
+ *     License along with this file; if not, write to the Free
+ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *     MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "socfpga_cyclone5.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "samtec VIN|ING FPGA";
+       compatible = "altr,socfpga-cyclone5", "altr,socfpga";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory {
+               name = "memory";
+               device_type = "memory";
+               reg = <0x0 0x40000000>; /* 1GB */
+       };
+
+       aliases {
+               /*
+                * This allow the ethaddr uboot environment variable contents
+                * to be added to the gmac1 device tree blob.
+                */
+               ethernet0 = &gmac1;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               hps_led0 {
+                       label = "hps:green:led0";       /* ALIVE_LED_GR */
+                       gpios = <&portb 19 0>;  /* HPS_GPIO48 */
+                       linux,default-trigger = "heartbeat";
+               };
+
+               hps_led1 {
+                       label = "hps:red:led0";         /* ALIVE_LED_RD */
+                       gpios = <&portb 24 0>;  /* HPS_GPIO53 */
+                       linux,default-trigger = "none";
+               };
+
+               hps_led2 {
+                       label = "hps:green:led1";       /* LINK2HOST_LED_GR */
+                       gpios = <&portb 25 0>;  /* HPS_GPIO54 */
+                       linux,default-trigger = "heartbeat";
+               };
+
+               hps_led3 {
+                       label = "hps:red:led1";         /* LINK2HOST_LED_RD */
+                       gpios = <&portc 7 0>;   /* HPS_GPIO65 */
+                       linux,default-trigger = "none";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               hps_temp0 {
+                       label = "BTN_0";                        /* TEMP_OS */
+                       gpios = <&portc 18 GPIO_ACTIVE_LOW>;    /* HPS_GPIO60 */
+                       linux,code = <BTN_0>;
+               };
+
+               hps_hkey0 {
+                       label = "BTN_1";                        /* DIS_PWR */
+                       gpios = <&portc 19 GPIO_ACTIVE_LOW>;    /* HPS_GPIO61 */
+                       linux,code = <BTN_1>;
+               };
+
+               hps_hkey1 {
+                       label = "hps_hkey1";                    /* POWER_DOWN */
+                       gpios = <&portc 20 GPIO_ACTIVE_LOW>;    /* HPS_GPIO62 */
+                       linux,code = <KEY_POWER>;
+               };
+       };
+
+       regulator-usb-nrst {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_nrst";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&portb 5 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <70000>;
+               enable-active-high;
+               regulator-always-on;
+       };
+};
+
+&gmac1 {
+       status = "okay";
+       phy-mode = "rgmii";
+
+       snps,reset-gpio = <&porta 0 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <10000 10000 10000>;
+
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy1: ethernet-phy@1 {
+                       reg = <1>;
+                       rxd0-skew-ps = <0>;
+                       rxd1-skew-ps = <0>;
+                       rxd2-skew-ps = <0>;
+                       rxd3-skew-ps = <0>;
+                       txen-skew-ps = <0>;
+                       txc-skew-ps = <2600>;
+                       rxdv-skew-ps = <0>;
+                       rxc-skew-ps = <2000>;
+               };
+       };
+};
+
+&gpio0 {       /* GPIO 0..29 */
+       status = "okay";
+};
+
+&gpio1 {       /* GPIO 30..57 */
+       status = "okay";
+};
+
+&gpio2 {       /* GPIO 58..66 (HLGPI 0..13 at offset 13) */
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       gpio: pca9557@1f {
+               compatible = "nxp,pca9557";
+               reg = <0x1f>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       temp: lm75@48 {
+               compatible = "lm75";
+               reg = <0x48>;
+       };
+
+       at24@50 {
+               compatible = "at24,24c01";
+               pagesize = <8>;
+               reg = <0x50>;
+       };
+
+       i2cswitch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+                       eeprom@51 {
+                               compatible = "at,24c01";
+                               pagesize = <8>;
+                               reg = <0x51>;
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <100000>;
+
+       at24@50 {
+               compatible = "at24,24c02";
+               pagesize = <8>;
+               reg = <0x50>;
+       };
+};
+
+&usb0 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb1 {
+       dr_mode = "peripheral";
+       status = "okay";
+};