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