The Traverse LS1043-S board is a router board based on NXP/Freescale's LS1043 SoC, with 4x1GBase-T, 1 SFP and 1 SFP+, as well as miniPCIe and M.2 LTE. Unlike the Layerscape reference boards, the LS1043-S board has NAND flash and uses the mainline U-Boot. This patch implements support for the LS1043-S board, as well as the earlier LS1043-V board. It is our intention that all boards in this family (LS1043-S and later, Five64) will boot the same binary. Not included in this patchset are the hwmon drivers not in the kernel (emc1704,pac1934) or the bootloader. Signed-off-by: Mathew McBride <matt@traverse.com.au>master
parent
481f870a02
commit
08714738d2
@ -0,0 +1,25 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright (C) 2015 OpenWrt.org |
||||
# |
||||
|
||||
. /lib/functions/uci-defaults.sh |
||||
|
||||
board_config_update |
||||
|
||||
board=$(board_name) |
||||
|
||||
case "$board" in |
||||
traverse,ls1043v) |
||||
ucidef_set_led_netdev "wan" "WAN LED" "ls1043v:yellow:wan" "eth4" |
||||
;; |
||||
traverse,ls1043s) |
||||
ucidef_set_led_netdev "wan" "WAN LED" "ls1043s:yellow:wan" "eth4" |
||||
ucidef_set_led_netdev "xgact" "10G Activity" "ls1043s:yellow:10gact" "eth6" |
||||
ucidef_set_led_netdev "xglink" "10G Link" "ls1043s:green:10glink" "eth6" |
||||
;; |
||||
esac |
||||
|
||||
board_config_flush |
||||
|
||||
exit 0 |
@ -0,0 +1,21 @@ |
||||
#!/bin/sh |
||||
|
||||
. /lib/functions/system.sh |
||||
. /lib/functions/uci-defaults.sh |
||||
|
||||
board_config_update |
||||
|
||||
case "$(board_name)" in |
||||
traverse,ls1043v) |
||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3" |
||||
ucidef_set_interface_wan "eth4" |
||||
;; |
||||
traverse,ls1043s) |
||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3 eth6" |
||||
ucidef_set_interface_wan "eth4" |
||||
;; |
||||
esac |
||||
|
||||
board_config_flush |
||||
|
||||
exit 0 |
@ -0,0 +1,28 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright (C) 2015 OpenWrt.org |
||||
# |
||||
|
||||
. /lib/functions/uci-defaults.sh |
||||
|
||||
board_config_update |
||||
|
||||
board=$(board_name) |
||||
|
||||
case "$board" in |
||||
traverse,ls1043v) |
||||
ucidef_add_gpio_switch "lte_reset" "LTE Reset" "377" |
||||
ucidef_add_gpio_switch "lte_disable" "LTE Airplane mode" "378" |
||||
;; |
||||
traverse,ls1043s) |
||||
ucidef_add_gpio_switch "tensfp_txdisable" "SFP+ TX Disable" "378" |
||||
ucidef_add_gpio_switch "gigsfp_txdisable" "SFP TX Disable" "381" |
||||
ucidef_add_gpio_switch "lte_reset" "LTE Reset" "502" |
||||
ucidef_add_gpio_switch "lte_disable" "LTE Airplane Mode" "394" |
||||
ucidef_add_gpio_switch "lte_power" "LTE Power" "395" |
||||
;; |
||||
esac |
||||
|
||||
board_config_flush |
||||
|
||||
exit 0 |
@ -0,0 +1,28 @@ |
||||
#!/bin/sh |
||||
|
||||
reorder_layerscape_interfaces() { |
||||
if [ ! -f /tmp/sysinfo/board_name ]; then |
||||
echo "No board name found, not doing reorder_layerscape_interfaces" |
||||
return 0 |
||||
fi |
||||
|
||||
board=$(cat /tmp/sysinfo/board_name) |
||||
case "$board" in |
||||
"traverse,ls1043v" | \ |
||||
"traverse,ls1043s") |
||||
|
||||
# Reorder ethernet interfaces to match the physical order |
||||
ip link set eth2 name fm1-mac3 |
||||
ip link set eth4 name eth2 |
||||
ip link set eth3 name fm1-mac4 |
||||
ip link set eth5 name eth3 |
||||
ip link set fm1-mac3 name eth4 |
||||
ip link set fm1-mac4 name eth5 |
||||
;; |
||||
default) |
||||
echo "Unknown board $board" |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
boot_hook_add preinit_main reorder_layerscape_interfaces |
@ -0,0 +1,94 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright 2015-2018 Traverse Technologies |
||||
# |
||||
platform_do_upgrade_traverse_nandubi() { |
||||
bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}') |
||||
newbootsys=2 |
||||
if [ "$bootsys" -eq "2" ]; then |
||||
newbootsys=1 |
||||
fi |
||||
mkdir -p /tmp/image |
||||
cd /tmp/image |
||||
get_image "$1" > image.tar |
||||
ls -la image.tar |
||||
files=$(tar -tf image.tar) |
||||
echo "Files in image:" |
||||
echo $files |
||||
for f in $files |
||||
do |
||||
part_name=$(echo $f | awk -F '/' '{{print $2}}') |
||||
if [ -z "$part_name" ] || [ "$part_name" = "CONTROL" ]; then |
||||
continue |
||||
fi |
||||
|
||||
[ "$part_name" = "root" ] && part_name="rootfs" |
||||
|
||||
volume=$part_name |
||||
if [ "$part_name" = "kernel" ] || [ "$part_name" = "rootfs" ]; then |
||||
volume="${part_name}${newbootsys}" |
||||
fi |
||||
volume_id=$(ubinfo -d 0 --name $volume | awk '/Volume ID/ {print $3}') |
||||
file_size=$(tar -tvf image.tar $f | awk '{{print $3}}') |
||||
echo "$f size $file_size" |
||||
tar -xOf image.tar $f | ubiupdatevol -s $file_size /dev/ubi0_$volume_id - |
||||
|
||||
echo "$volume upgraded" |
||||
done |
||||
fw_setenv bootsys $newbootsys |
||||
echo "Upgrade complete" |
||||
} |
||||
platform_copy_config() { |
||||
bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}') |
||||
rootvol=rootfs$bootsys |
||||
volume_id=$(ubinfo -d 0 --name $rootvol | awk '/Volume ID/ {print $3}') |
||||
mkdir -p /mnt/oldsys |
||||
mount -t ubifs -o rw,noatime /dev/ubi0_$volume_id /mnt/oldsys |
||||
cp -af "$CONF_TAR" /mnt/oldsys |
||||
umount /mnt/oldsys |
||||
} |
||||
platform_check_image() { |
||||
local board=$(board_name) |
||||
|
||||
case "$board" in |
||||
traverse,ls1043v | \ |
||||
traverse,ls1043s | \ |
||||
traverse,five64) |
||||
local tar_file="$1" |
||||
local kernel_length=$( (tar xf $tar_file sysupgrade-traverse-five64/kernel -O | wc -c) 2> /dev/null) |
||||
local rootfs_length=$( (tar xf $tar_file sysupgrade-traverse-five64/root -O | wc -c) 2> /dev/null) |
||||
[ "$kernel_length" -eq 0 -o "$rootfs_length" -eq 0 ] && { |
||||
echo "The upgrade image is corrupt." |
||||
return 1 |
||||
} |
||||
return 0 |
||||
;; |
||||
*) |
||||
echo "Sysupgrade is not currently supported on $board" |
||||
;; |
||||
esac |
||||
|
||||
return 1 |
||||
} |
||||
platform_do_upgrade() { |
||||
local board=$(board_name) |
||||
|
||||
case "$board" in |
||||
traverse,ls1043v | \ |
||||
traverse,ls1043s | \ |
||||
traverse,five64) |
||||
platform_do_upgrade_traverse_nandubi "$ARGV" |
||||
;; |
||||
*) |
||||
echo "Sysupgrade is not currently supported on $board" |
||||
;; |
||||
esac |
||||
} |
||||
platform_pre_upgrade() { |
||||
# Force the creation of fw_printenv.lock |
||||
mkdir -p /var/lock |
||||
touch /var/lock/fw_printenv.lock |
||||
|
||||
export RAMFS_COPY_BIN="/usr/sbin/fw_printenv /usr/sbin/fw_setenv /usr/sbin/ubinfo /bin/echo ${RAMFS_COPY_BIN}" |
||||
export RAMFS_COPY_DATA="/etc/fw_env.config /var/lock/fw_printenv.lock ${RAMFS_COPY_DATA}" |
||||
} |
@ -0,0 +1,332 @@ |
||||
/* |
||||
* Device Tree Include file for Traverse LS1043S board. |
||||
* |
||||
* Copyright 2014-2015, Freescale Semiconductor |
||||
* Copyright 2017-2018, Traverse Technologies |
||||
* |
||||
* This file is dual-licensed: you can use it either under the terms |
||||
* of the GPLv2 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 library 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 library 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. |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
#include "fsl-ls1043a.dtsi" |
||||
#include <dt-bindings/gpio/gpio.h> |
||||
#include <dt-bindings/input/input.h> |
||||
|
||||
/ { |
||||
model = "Traverse LS1043S"; |
||||
compatible = "traverse,ls1043s"; |
||||
|
||||
aliases { |
||||
crypto = &crypto; |
||||
ethernet0 = &EMAC0; |
||||
ethernet1 = &EMAC1; |
||||
ethernet2 = &EMAC2; |
||||
ethernet3 = &EMAC3; |
||||
ethernet4 = &EMAC4; |
||||
ethernet5 = &EMAC5; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
gpio0 { |
||||
label = "ls1043s:green:user0"; |
||||
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
gpio1 { |
||||
label = "ls1043s:green:user1"; |
||||
gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
/* LED D17 */ |
||||
gpio2 { |
||||
label = "ls1043s:green:wan"; |
||||
gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio3 { |
||||
label = "ls1043s:yellow:wan"; |
||||
gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
/* LED D18 */ |
||||
gpio4 { |
||||
label = "ls1043s:green:mgmt"; |
||||
gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio5 { |
||||
label = "ls1043s:yellow:mgmt"; |
||||
gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
/* LED D6 */ |
||||
gpio6 { |
||||
label = "ls1043s:green:user2"; |
||||
gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
|
||||
/* SFP+ LEDs - these are for chassis |
||||
* with lightpipes only |
||||
*/ |
||||
teng_act { |
||||
label = "ls1043s:yellow:10gact"; |
||||
gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
|
||||
teng_link { |
||||
label = "ls1043s:green:10glink"; |
||||
gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
}; |
||||
|
||||
gpio-keys-polled { |
||||
compatible = "gpio-keys-polled"; |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
poll-interval = <1000>; |
||||
/* This button may not be loaded on all boards */ |
||||
button@0 { |
||||
label = "Front button"; |
||||
linux,code = <KEY_SETUP>; |
||||
gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
/* This is wired to header S3 */ |
||||
button@1 { |
||||
label = "Rear button"; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&esdhc { |
||||
mmc-hs200-1_8v; |
||||
sd-uhs-sdr104; |
||||
sd-uhs-sdr50; |
||||
sd-uhs-sdr25; |
||||
sd-uhs-sdr12; |
||||
}; |
||||
|
||||
&i2c0 { |
||||
status = "okay"; |
||||
rtc@6f { |
||||
compatible = "intersil,isl1208"; |
||||
reg = <0x6f>; |
||||
}; |
||||
|
||||
sfp_pca9534: pca9534@24 { |
||||
compatible = "ti,tca9534", "nxp,pca9534"; |
||||
gpio-controller; |
||||
#gpio-cells = <2>; |
||||
reg = <0x24>; |
||||
gpio-base = <100>; |
||||
}; |
||||
|
||||
controller@50 { |
||||
compatible = "traverse,controller"; |
||||
reg = <0x50>; |
||||
}; |
||||
|
||||
ds125df111@18 { |
||||
compatible = "ti,ds125df111"; |
||||
reg = <0x18>; |
||||
}; |
||||
|
||||
emc1704@4c { |
||||
compatible = "microchip,emc1704"; |
||||
reg = <0x4c>; |
||||
}; |
||||
|
||||
pac1934@16 { |
||||
compatible = "microchip,pac1934"; |
||||
reg = <0x16>; |
||||
/* Monitoring 3.3V, 5V, Vin/12V (voltage only), Vbat/RTC (voltage only) */ |
||||
shunt-resistors = <4000 12000 0 0>; |
||||
}; |
||||
|
||||
pmic@8 { |
||||
compatible = "freescale,mc34vr500"; |
||||
reg = <0x08>; |
||||
}; |
||||
}; |
||||
|
||||
/* I2C Bus for SFP EEPROM and control |
||||
* These are multiplexed so |
||||
* they don't collide when loaded |
||||
*/ |
||||
&i2c3 { |
||||
status = "okay"; |
||||
i2c-switch@70 { |
||||
compatible = "nxp,pca9540"; |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
reg = <0x70>; |
||||
|
||||
gigsfp_i2c: i2c@0 { |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
reg = <0>; |
||||
}; |
||||
tensfp_i2c: i2c@1 { |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
reg = <1>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&ifc { |
||||
status = "okay"; |
||||
#address-cells = <2>; |
||||
#size-cells = <1>; |
||||
/* Only NAND flash is used on this board */ |
||||
ranges = <0x0 0x0 0x0 0x7e800000 0x00010000>; |
||||
|
||||
nand@1,0 { |
||||
compatible = "fsl,ifc-nand"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
reg = <0x0 0x0 0x10000>; |
||||
}; |
||||
}; |
||||
|
||||
&duart0 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&duart1 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
#include "fsl-ls1043-post.dtsi" |
||||
|
||||
&fman0 { |
||||
EMAC0: ethernet@e0000 { |
||||
phy-handle = <&qsgmii_phy1>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 01]; |
||||
}; |
||||
|
||||
EMAC1: ethernet@e2000 { |
||||
phy-handle = <&qsgmii_phy2>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 02]; |
||||
}; |
||||
|
||||
EMAC2: ethernet@e8000 { |
||||
phy-handle = <&qsgmii_phy3>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 03]; |
||||
}; |
||||
|
||||
EMAC3: ethernet@ea000 { |
||||
phy-handle = <&qsgmii_phy4>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 04]; |
||||
}; |
||||
|
||||
/* SFP via AR8031 |
||||
* We treat this as a fixed-link as the |
||||
* AR8031 is hard-configured into |
||||
* 1000BASE-X mode |
||||
* Should MII control be desired, remove |
||||
* fixed-link and add |
||||
* phy-handle = <&rgmii_phy1>; |
||||
*/ |
||||
EMAC4: ethernet@e4000 { |
||||
phy-connection-type = "rgmii"; |
||||
local-mac-address = [0A 00 00 00 00 05]; |
||||
fixed-link { |
||||
speed = <1000>; |
||||
full-duplex; |
||||
}; |
||||
}; |
||||
|
||||
/* Connection to Expansion (M.2) slot |
||||
* Future WAN (i.e xDSL) plugin |
||||
*/ |
||||
EMAC5: ethernet@e6000 { |
||||
phy-connection-type = "rgmii-id"; |
||||
local-mac-address = [00 00 00 00 00 06]; |
||||
fixed-link { |
||||
speed = <1000>; |
||||
full-duplex; |
||||
}; |
||||
}; |
||||
|
||||
/* 10G SFP+ interface |
||||
* This can also run at 1.25 and 2.5G with |
||||
* the appropriate SerDes protocol setting in RCW |
||||
*/ |
||||
TENSFP: ethernet@f0000 { |
||||
status = "okay"; |
||||
phy-connection-type = "xgmii"; |
||||
fixed-link { |
||||
speed = <10000>; |
||||
full-duplex; |
||||
}; |
||||
}; |
||||
|
||||
mdio@fc000 { |
||||
rgmii_phy1: ethernet-phy@2 { |
||||
reg = <0x2>; |
||||
}; |
||||
qsgmii_phy1: ethernet-phy@4 { |
||||
reg = <0x4>; |
||||
}; |
||||
qsgmii_phy2: ethernet-phy@5 { |
||||
reg = <0x5>; |
||||
}; |
||||
qsgmii_phy3: ethernet-phy@6 { |
||||
reg = <0x6>; |
||||
}; |
||||
qsgmii_phy4: ethernet-phy@7 { |
||||
reg = <0x7>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
/* No QUICC engine functions on this board - |
||||
* pins are used for other functions (GPIO, I2C etc.) |
||||
*/ |
||||
&uqe { |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
/* LS1043S does not use the QorIQ AHCI |
||||
* controller. |
||||
*/ |
||||
&sata { |
||||
status = "disabled"; |
||||
}; |
@ -0,0 +1,253 @@ |
||||
/* |
||||
* Device Tree Include file for Traverse LS1043V board. |
||||
* |
||||
* Copyright 2014-2015, Freescale Semiconductor |
||||
* Copyright 2017, Traverse Technologies |
||||
* |
||||
* This file is dual-licensed: you can use it either under the terms |
||||
* of the GPLv2 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 library 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 library 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. |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
#include "fsl-ls1043a.dtsi" |
||||
#include <dt-bindings/gpio/gpio.h> |
||||
#include <dt-bindings/input/input.h> |
||||
|
||||
/ { |
||||
model = "Traverse LS1043V"; |
||||
compatible = "traverse,ls1043v"; |
||||
|
||||
aliases { |
||||
crypto = &crypto; |
||||
ethernet0 = &EMAC0; |
||||
ethernet1 = &EMAC1; |
||||
ethernet2 = &EMAC2; |
||||
ethernet3 = &EMAC3; |
||||
ethernet4 = &EMAC4; |
||||
ethernet5 = &EMAC5; |
||||
pca9555 = &pca9555; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
gpio0 { |
||||
label = "ls1043v:green:user0"; |
||||
gpios = <&pca9555 0 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio1 { |
||||
label = "ls1043v:yellow:user0"; |
||||
gpios = <&pca9555 1 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio2 { |
||||
label = "ls1043v:green:user1"; |
||||
gpios = <&pca9555 2 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio3 { |
||||
label = "ls1043v:yellow:user1"; |
||||
gpios = <&pca9555 3 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
gpio4 { |
||||
label = "ls1043v:green:user2"; |
||||
gpios = <&pca9555 4 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
gpio5 { |
||||
label = "ls1043v:yellow:wlan"; |
||||
gpios = <&pca9555 5 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
gpio6 { |
||||
label = "ls1043v:yellow:wan"; |
||||
gpios = <&pca9555 6 GPIO_ACTIVE_HIGH>; |
||||
}; |
||||
}; |
||||
|
||||
gpio-keys-polled { |
||||
compatible = "gpio-keys-polled"; |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
poll-interval = <1000>; |
||||
button@0 { |
||||
label = "Front button"; |
||||
linux,code = <KEY_SETUP>; |
||||
gpios = <&pca9555 14 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
button@1 { |
||||
label = "Rear button"; |
||||
linux,code = <KEY_WPS_BUTTON>; |
||||
gpios = <&pca9555 15 GPIO_ACTIVE_LOW>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&i2c0 { |
||||
status = "okay"; |
||||
rtc@6f { |
||||
compatible = "intersil,isl1208"; |
||||
reg = <0x6f>; |
||||
}; |
||||
|
||||
pca9555: pca9555@20 { |
||||
compatible = "nxp,pca9555"; |
||||
gpio-controller; |
||||
#gpio-cells = <2>; |
||||
reg = <0x20>; |
||||
gpio-base = <0>; |
||||
}; |
||||
|
||||
/* CPU core temp sensor and VDD (1.0V) sensor */ |
||||
ltc2990@4c { |
||||
compatible = "lltc,ltc2990"; |
||||
reg = <0x4C>; |
||||
lltc,meas-mode = <4 3>; |
||||
}; |
||||
|
||||
/* 3.3V and 5V monitor (may not be loaded on some SKUs) */ |
||||
ltc2990@4f { |
||||
compatible = "lltc,ltc2990"; |
||||
reg = <0x4F>; |
||||
lltc,meas-mode = <6 3>; |
||||
}; |
||||
}; |
||||
|
||||
&ifc { |
||||
status = "okay"; |
||||
#address-cells = <2>; |
||||
#size-cells = <1>; |
||||
/* Only NAND flash is used on this board */ |
||||
ranges = <0x0 0x0 0x0 0x7e800000 0x00010000>; |
||||
|
||||
nand@1,0 { |
||||
compatible = "fsl,ifc-nand"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
reg = <0x0 0x0 0x10000>; |
||||
}; |
||||
}; |
||||
|
||||
&duart0 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&duart1 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
#include "fsl-ls1043-post.dtsi" |
||||
|
||||
&fman0 { |
||||
EMAC0: ethernet@e0000 { |
||||
phy-handle = <&qsgmii_phy1>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 01]; |
||||
}; |
||||
|
||||
EMAC1: ethernet@e2000 { |
||||
phy-handle = <&qsgmii_phy2>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 02]; |
||||
}; |
||||
|
||||
EMAC2: ethernet@e8000 { |
||||
phy-handle = <&qsgmii_phy3>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 03]; |
||||
}; |
||||
|
||||
EMAC3: ethernet@ea000 { |
||||
phy-handle = <&qsgmii_phy4>; |
||||
phy-connection-type = "qsgmii"; |
||||
local-mac-address = [0A 00 00 00 00 04]; |
||||
}; |
||||
EMAC4: ethernet@e4000 { |
||||
phy-handle = <&rgmii_phy1>; |
||||
phy-connection-type = "rgmii"; |
||||
local-mac-address = [0A 00 00 00 00 05]; |
||||
}; |
||||
|
||||
/* Connection to VDSL SoC */ |
||||
EMAC5: ethernet@e6000 { |
||||
phy-connection-type = "rgmii-id"; |
||||
local-mac-address = [00 00 00 00 00 06]; |
||||
fixed-link { |
||||
speed = <1000>; |
||||
full-duplex; |
||||
}; |
||||
}; |
||||
|
||||
/* 10G XFI interface - not in use on this platform */ |
||||
TENSFP: ethernet@f0000 { |
||||
status = "disabled"; |
||||
|
||||
phy-connection-type = "sgmii"; |
||||
fixed-link { |
||||
/* NB: speed = 1000 and sgmii allows forward compatibility |
||||
* with both 1G and 10G, the same is not true |
||||
* in the reverse. |
||||
*/ |
||||
speed = <1000>; |
||||
full-duplex; |
||||
}; |
||||
}; |
||||
|
||||
mdio@fc000 { |
||||
rgmii_phy1: ethernet-phy@3 { |
||||
reg = <0x3>; |
||||
}; |
||||
qsgmii_phy1: ethernet-phy@4 { |
||||
reg = <0x4>; |
||||
}; |
||||
qsgmii_phy2: ethernet-phy@5 { |
||||
reg = <0x5>; |
||||
}; |
||||
qsgmii_phy3: ethernet-phy@6 { |
||||
reg = <0x6>; |
||||
}; |
||||
qsgmii_phy4: ethernet-phy@7 { |
||||
reg = <0x7>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
/* No QUICC engine functions on this board */ |
||||
&uqe { |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
/* No SATA/AHCI on this board */ |
||||
&sata { |
||||
status = "disabled"; |
||||
}; |
@ -0,0 +1,89 @@ |
||||
From c0612164b379ebc8964da6bc6f6ced9736dce488 Mon Sep 17 00:00:00 2001
|
||||
From: Mathew McBride <matt@traverse.com.au>
|
||||
Date: Tue, 17 Apr 2018 10:01:03 +1000
|
||||
Subject: [PATCH] add DTS for Traverse LS1043 Boards
|
||||
|
||||
Signed-off-by: Mathew McBride <matt@traverse.com.au>
|
||||
---
|
||||
arch/arm64/boot/dts/freescale/Makefile | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm64/boot/dts/freescale/traverse-ls1043v.dts
|
||||
|
||||
--- a/arch/arm64/boot/dts/freescale/Makefile
|
||||
+++ b/arch/arm64/boot/dts/freescale/Makefile
|
||||
@@ -20,7 +20,10 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb
|
||||
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
|
||||
-
|
||||
+
|
||||
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += traverse-ls1043v.dtb
|
||||
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += traverse-ls1043s.dtb
|
||||
+
|
||||
always := $(dtb-y)
|
||||
subdir-y := $(dts-dirs)
|
||||
clean-files := *.dtb
|
||||
--- a/arch/arm64/boot/dts/freescale/traverse-ls1043s.dts
|
||||
+++ b/arch/arm64/boot/dts/freescale/traverse-ls1043s.dts
|
||||
@@ -337,3 +337,29 @@
|
||||
&sata {
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+/* Additions for Layerscape SDK (4.4/4.9) Kernel only
|
||||
+ * These kernels need additional setup for FMan/QMan DMA shared memory
|
||||
+ */
|
||||
+
|
||||
+&bman_fbpr {
|
||||
+ compatible = "fsl,bman-fbpr";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+&qman_fqd {
|
||||
+ compatible = "fsl,qman-fqd";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+&qman_pfdr {
|
||||
+ compatible = "fsl,qman-pfdr";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+
|
||||
+&soc {
|
||||
+#include "qoriq-dpaa-eth.dtsi"
|
||||
+#include "qoriq-fman3-0-6oh.dtsi"
|
||||
+};
|
||||
+
|
||||
+&fman0 {
|
||||
+ compatible = "fsl,fman", "simple-bus";
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/freescale/traverse-ls1043v.dts
|
||||
+++ b/arch/arm64/boot/dts/freescale/traverse-ls1043v.dts
|
||||
@@ -313,3 +313,29 @@
|
||||
&sata {
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+/* Additions for Layerscape SDK (4.4/4.9) Kernel only
|
||||
+ * These kernels need additional setup for FMan/QMan DMA shared memory
|
||||
+ */
|
||||
+
|
||||
+&bman_fbpr {
|
||||
+ compatible = "fsl,bman-fbpr";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+&qman_fqd {
|
||||
+ compatible = "fsl,qman-fqd";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+&qman_pfdr {
|
||||
+ compatible = "fsl,qman-pfdr";
|
||||
+ alloc-ranges = <0 0 0x10000 0>;
|
||||
+};
|
||||
+
|
||||
+&soc {
|
||||
+#include "qoriq-dpaa-eth.dtsi"
|
||||
+#include "qoriq-fman3-0-6oh.dtsi"
|
||||
+};
|
||||
+
|
||||
+&fman0 {
|
||||
+ compatible = "fsl,fman", "simple-bus";
|
||||
+};
|
@ -0,0 +1,10 @@ |
||||
--- a/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
|
||||
@@ -619,6 +619,7 @@ static void esdhc_reset(struct sdhci_hos
|
||||
static const struct of_device_id scfg_device_ids[] = {
|
||||
{ .compatible = "fsl,t1040-scfg", },
|
||||
{ .compatible = "fsl,ls1012a-scfg", },
|
||||
+ { .compatible = "fsl,ls1043a-scfg", },
|
||||
{ .compatible = "fsl,ls1046a-scfg", },
|
||||
{}
|
||||
};
|
Loading…
Reference in new issue