diff options
author | Florian Fainelli <florian@openwrt.org> | 2012-06-19 14:48:56 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2012-06-19 14:48:56 +0000 |
commit | f4afa00862b7db8a2da8c012843a286716c0a534 (patch) | |
tree | 9c15efab8fd398654de98648e07f26c51d6eec66 /target/linux/mcs814x/base-files | |
parent | 7c87391c55a713a9ef9df169ab23e79177184b1a (diff) | |
download | upstream-f4afa00862b7db8a2da8c012843a286716c0a534.tar.gz upstream-f4afa00862b7db8a2da8c012843a286716c0a534.tar.bz2 upstream-f4afa00862b7db8a2da8c012843a286716c0a534.zip |
add Moschip MSC814x support
This target currently only supports Moschip's MCS8140 SoC, but support
for other chips in the same family (MCS8142, MCS8144) will be easy to add.
Target support is entirely using Device Tree for probing peripherals.
Drivers support include:
- PCI
- USB 1 & 2
- watchdog
- random number generator
- UART
- timer
- internal Ethernet PHY
- Ethernet MAC core
Support for the following boards is included using Device Tree
- Devolo dLAN USB Extender
- Tigal RBT-832
SVN-Revision: 32462
Diffstat (limited to 'target/linux/mcs814x/base-files')
3 files changed, 96 insertions, 0 deletions
diff --git a/target/linux/mcs814x/base-files/etc/uci-defaults/leds b/target/linux/mcs814x/base-files/etc/uci-defaults/leds new file mode 100644 index 0000000000..f90b00e322 --- /dev/null +++ b/target/linux/mcs814x/base-files/etc/uci-defaults/leds @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Copyright (C) 2012 OpenWrt.org +# + +COMMIT_SYSTEM=0 + +set_led_usbdev() { + local cfg="led_$1" + local name=$2 + local sysfs=$3 + local dev=$4 + + uci -q get system.$cfg && return 0 + + uci batch <<EOF +set system.$cfg='led' +set system.$cfg.name='$name' +set system.$cfg.sysfs='$sysfs' +set system.$cfg.trigger='usbdev' +set system.$cfg.dev='$dev' +set system.$cfg.interval='50' +EOF + COMMIT_SYSTEM=1 +} + +. /lib/mcs814x.sh + +board=$(mcs814x_board_name) + +case "$board" in +dlan-usb-extender) + set_led_usbdev "usb" "USB" "dlan-usb-extender:green:usb" "1-1" + ;; +rbt-832) + set_led_usbdev "usb" "USB" "rbt-832:red:usb0" "1-1" + set_led_usbdev "usb" "USB" "rbt-832:red:usb1" "1-2" + set_led_usbdev "usb" "USB" "rbt-832:red:usb2" "1-3" + set_led_usbdev "usb" "USB" "rbt-832:red:usb3" "1-4" + ;; +esac + +[ "$COMMIT_SYSTEM" == "1" ] && uci commit system + +exit 0 diff --git a/target/linux/mcs814x/base-files/lib/mcs814x.sh b/target/linux/mcs814x/base-files/lib/mcs814x.sh new file mode 100644 index 0000000000..e4360fdb8f --- /dev/null +++ b/target/linux/mcs814x/base-files/lib/mcs814x.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# +# Copyright (C) 2012 OpenWrt.org +# + +MCS814X_BOARD_NAME= +MCS814X_MODEL= + +mcs814x_board_detect() { + local machine + local name + + machine=$(cat /proc/device-tree/model) + + case "$machine" in + *"Devolo dLAN USB Extender") + name="dlan-usb-extender" + ;; + *"Tigal RBT-832") + name="rbt-832" + ;; + esac + + [ -z "$name" ] && name="unknown" + + [ -z "$MCS814X_BOARD_NAME" ] && MCS814X_BOARD_NAME="$name" + [ -z "$MCS814X_MODEL" ] && MCS814X_MODEL="$machine" + + [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" + + echo "$MCS814X_BOARD_NAME" > /tmp/sysinfo/board_name + echo "$MCS814X_MODEL" > /tmp/sysinfo/model +} + +mcs814x_board_name() { + local name + + [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) + [ -z "$name" ] && name="unknown" + + echo "$name" +} diff --git a/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh b/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh new file mode 100755 index 0000000000..d509770c55 --- /dev/null +++ b/target/linux/mcs814x/base-files/lib/preinit/03_preinit_do_mcs814x.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +do_mcs814x() { + . /lib/mcs814x.sh + + mcs814x_board_detect +} + +boot_hook_add preinit_main do_mcs814x |