From 5c9b97d145d43e44897a5c628ca9b10ece398189 Mon Sep 17 00:00:00 2001 From: James <> Date: Fri, 2 Oct 2015 12:43:16 +0100 Subject: nearly working audio --- master/kkmoon | 432 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 374 insertions(+), 58 deletions(-) (limited to 'master/kkmoon') diff --git a/master/kkmoon b/master/kkmoon index 92b5937..e0ee885 100644 --- a/master/kkmoon +++ b/master/kkmoon @@ -10,6 +10,45 @@ index 75cccae..e87014f 100755 w150m|\ wnce2001|\ zte-q7) +diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh +index 7fc6f29..3b2d04c 100644 +--- a/target/linux/ramips/base-files/etc/diag.sh ++++ b/target/linux/ramips/base-files/etc/diag.sh +@@ -173,6 +173,9 @@ get_status_led() { + wsr-600) + status_led="$board:orange:diag" + ;; ++ tp-c516w) ++ status_led="$board:green:camera" ++ ;; + esac + } + +diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds +new file mode 100644 +index 0000000..9a43eba +--- /dev/null ++++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds +@@ -0,0 +1,19 @@ ++#!/bin/sh ++# ++# Copyright (C) 2011 OpenWrt.org ++# ++ ++. /lib/functions/uci-defaults.sh ++. /lib/ramips.sh ++ ++board=$(ramips_board_name) ++ ++case "$board" in ++tp-c516w) ++ ucidef_set_led_netdev "lan" "LAN" "$board:orange:ethernet" "eth0" ++ ;; ++esac ++ ++ucidef_commit_leds ++ ++exit 0 diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index d242235..3261cef 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh @@ -24,27 +63,6 @@ index d242235..3261cef 100755 *"NW718") name="nw718" ;; -diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile -index c24d220..ffff29f 100644 ---- a/target/linux/ramips/image/Makefile -+++ b/target/linux/ramips/image/Makefile -@@ -193,6 +193,7 @@ BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$( - # $(4) = uImage header name field - ralink_default_fw_size_8M=8060928 - BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) -+BuildFirmware/Default8M/jffs2=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) - BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) - BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4)) - BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4)) -@@ -569,6 +570,8 @@ Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2 - - Image/Build/Profile/NCS601W=$(call BuildFirmware/Default8M/$(1),$(1),ncs601W,NCS601W) - -+Image/Build/Profile/TP-C516W=$(call BuildFirmware/Default8M/$(1),$(1),tp-c516w,TP-C516W) -+ - nw718_mtd_size=3801088 - Image/Build/Profile/NW718=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),nw718m,NW718,$(nw718_mtd_size),ARA1B4NCRNW718;1,factory) - diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 2f6c624..059aae2 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -58,8 +76,205 @@ index 2f6c624..059aae2 100755 3g300m|\ 3g-6200n|\ 3g-6200nl|\ +diff --git a/target/linux/ramips/dts/TP-C516W-16M.dts b/target/linux/ramips/dts/TP-C516W-16M.dts +new file mode 100644 +index 0000000..61c1b23 +--- /dev/null ++++ b/target/linux/ramips/dts/TP-C516W-16M.dts +@@ -0,0 +1,49 @@ ++/dts-v1/; ++ ++/include/ "rt5350.dtsi" ++ ++/ { ++ compatible = "TP-C516W", "ralink,rt5350-soc"; ++ model = "KKMoon TP-C516W"; ++ ++ palmbus@10000000 { ++ spi@b00 { ++ status = "okay"; ++ ++ m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "s25sl12801"; ++ reg = <0 0>; ++ linux,modalias = "m25p80", "s25sl12801"; ++ spi-max-frequency = <10000000>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-boot-env"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ factory: partition@40000 { ++ label = "factory"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ }; ++ ++ partition@50000 { ++ label = "firmware"; ++ reg = <0x50000 0xfb0000>; ++ }; ++ }; ++ }; ++ }; ++ ++/include/ "TP-C516W-common.dtsi" ++ ++}; +diff --git a/target/linux/ramips/dts/TP-C516W-8M.dts b/target/linux/ramips/dts/TP-C516W-8M.dts +new file mode 100644 +index 0000000..d80b4d4 +--- /dev/null ++++ b/target/linux/ramips/dts/TP-C516W-8M.dts +@@ -0,0 +1,49 @@ ++/dts-v1/; ++ ++/include/ "rt5350.dtsi" ++ ++/ { ++ compatible = "TP-C516W", "ralink,rt5350-soc"; ++ model = "KKMoon TP-C516W"; ++ ++ palmbus@10000000 { ++ spi@b00 { ++ status = "okay"; ++ ++ m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "s25fl064k"; ++ reg = <0 0>; ++ linux,modalias = "m25p80", "s25fl064k"; ++ spi-max-frequency = <10000000>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-boot-env"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ factory: partition@40000 { ++ label = "factory"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ }; ++ ++ partition@50000 { ++ label = "firmware"; ++ reg = <0x50000 0x7b0000>; ++ }; ++ }; ++ }; ++ }; ++ ++ ++/include/ "TP-C516W-common.dtsi" ++}; +diff --git a/target/linux/ramips/dts/TP-C516W-common.dtsi b/target/linux/ramips/dts/TP-C516W-common.dtsi +new file mode 100644 +index 0000000..675f83a +--- /dev/null ++++ b/target/linux/ramips/dts/TP-C516W-common.dtsi +@@ -0,0 +1,81 @@ ++/*Common definitions for TP-C516W */ ++ ++ palmbus@10000000 { ++ gpio1: gpio@660 { ++ status = "ok"; ++ }; ++ ++ spi@b00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi_pins>; ++ }; ++ ++ }; ++ ++ pinctrl { ++ state_default: pinctrl0 { ++ gpio { ++ ralink,group = "jtag", "rgmii", "mdio", "led", "spi_cs1", "uartf"; ++ ralink,function = "gpio"; ++ }; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ ++ camera { ++ label = "tp-c516w:green:camera"; ++ gpios = <&gpio0 12 0>; ++ }; ++ ++ wifi { ++ label = "tp-c516w:orange:ethernet"; ++ gpios = <&gpio0 13 1>; ++ }; ++ ++ alarm_out { ++ label = "tp-c516w::alarm_out"; ++ gpios = <&gpio1 5 0>; ++ }; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ poll-interval = <20>; ++ ++ ++ reset { ++ label = "reset"; ++ gpios = <&gpio0 0 1>; ++ linux,code = <0x198>; ++ }; ++ ++ alarm_in { ++ label = "alarm_in"; ++ gpios = <&gpio0 21 0>; ++ }; ++ }; ++ ++ ++ ethernet@10100000 { ++ mtd-mac-address = <&factory 0x4>; ++ }; ++ ++ esw@10110000 { ++ ralink,portmap = <0x2f>; ++ }; ++ ++ wmac@10180000 { ++ ralink,mtd-eeprom = <&factory 0>; ++ }; ++ ++ ehci@101c0000 { ++ status = "okay"; ++ }; ++ ++ ohci@101c1000 { ++ status = "okay"; ++ }; diff --git a/target/linux/ramips/dts/rt5350.dtsi b/target/linux/ramips/dts/rt5350.dtsi -index 5282e5b..208a962 100644 +index 5282e5b..22d0e36 100644 --- a/target/linux/ramips/dts/rt5350.dtsi +++ b/target/linux/ramips/dts/rt5350.dtsi @@ -119,6 +119,9 @@ @@ -72,73 +287,104 @@ index 5282e5b..208a962 100644 interrupt-parent = <&intc>; interrupts = <6>; -@@ -131,7 +134,7 @@ - 10 14 18 1c - 20 24 ]; - -- status = "disabled"; -+ /*status = "disabled";*/ +@@ -135,7 +138,7 @@ }; i2c@900 { -@@ -165,6 +168,7 @@ +- compatible = "link,rt5350-i2c", "ralink,rt2880-i2c"; ++ compatible = "ralink,rt5350-i2c", "ralink,rt2880-i2c"; + reg = <0x900 0x100>; + resets = <&rstctrl 16>; +@@ -150,6 +153,16 @@ status = "disabled"; }; -+ - uartlite@c00 { - compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a"; -@@ -189,6 +193,16 @@ ++ i2s@a00 { ++ compatible = "ralink,rt5350-i2s"; ++ reg = <0xa00 0x28>; ++ ++ resets = <&rstctrl 17>; ++ reset-names = "i2s"; ++ ++ status = "disabled"; ++ }; ++ + spi@b00 { + compatible = "ralink,rt5350-spi"; + reg = <0xb00 0x100>; +@@ -189,6 +202,9 @@ interrupt-parent = <&cpuintc>; interrupts = <7>; }; + + -+ /* phydummy { -+ compatible = "ralink,phydummy"; -+ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&led_pins>; -+ -+ }; */ + }; pinctrl { -@@ -214,13 +228,6 @@ +@@ -214,8 +230,8 @@ }; }; - phy_led_pins: phy_led { - phy_led { -- ralink,group = "led"; -- ralink,function = "led"; -- }; -- }; -- - uartlite_pins: uartlite { - uart { - ralink,group = "uartlite"; -@@ -241,6 +248,13 @@ ++ led_pins: led { ++ led { + ralink,group = "led"; + ralink,function = "led"; + }; +@@ -241,6 +257,7 @@ ralink,function = "spi_cs1"; }; }; + -+ led_pins: phy_led { -+ phy_led { -+ ralink,group = "led"; -+ ralink,function = "led"; -+ }; -+ }; }; rstctrl: rstctrl { +@@ -309,4 +326,11 @@ + interrupt-parent = <&intc>; + interrupts = <18>; + }; ++ ++ ephy { ++ compatible = "ralink,ephy"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&led_pins>; ++ }; + }; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile -index ffff29f..2400261 100644 +index c24d220..c8c2cc1 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile -@@ -745,6 +745,7 @@ define Image/Build/Profile/Default +@@ -193,6 +193,7 @@ BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$( + # $(4) = uImage header name field + ralink_default_fw_size_8M=8060928 + BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) ++BuildFirmware/Default8M/jffs2=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) + BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) + BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4)) + BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4)) +@@ -569,6 +570,17 @@ Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2 + + Image/Build/Profile/NCS601W=$(call BuildFirmware/Default8M/$(1),$(1),ncs601W,NCS601W) + ++define BuildFirmware/TP-C516W/squashfs ++ $(call BuildFirmware/Default8M/$(1),$(1),$(2)-8M,$(3)-8M) ++ $(call BuildFirmware/Default16M/$(1),$(1),$(2)-16M,$(3)-16M) ++endef ++define BuildFirmware/TP-C516W/initramfs ++ $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M) ++ $(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M) ++endef ++ ++Image/Build/Profile/TP-C516W=$(call BuildFirmware/TP-C516W/$(1),$(1),tp-c516w,TP-C516W) ++ + nw718_mtd_size=3801088 + Image/Build/Profile/NW718=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),nw718m,NW718,$(nw718_mtd_size),ARA1B4NCRNW718;1,factory) + +@@ -742,6 +754,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/MZKW300NH2,$(1)) $(call Image/Build/Profile/NBG-419N,$(1)) $(call Image/Build/Profile/NCS601W,$(1)) @@ -146,3 +392,73 @@ index ffff29f..2400261 100644 $(call Image/Build/Profile/NW718,$(1)) $(call Image/Build/Profile/MINIEMBWIFI,$(1)) $(call Image/Build/Profile/MINIEMBPLUG,$(1)) +diff --git a/target/linux/ramips/patches-3.18/9997-alarm-out.patch b/target/linux/ramips/patches-3.18/9997-alarm-out.patch +new file mode 100644 +index 0000000..64fb4fc +--- /dev/null ++++ b/target/linux/ramips/patches-3.18/9997-alarm-out.patch +@@ -0,0 +1,16 @@ ++Index: linux-3.18.21/drivers/pinctrl/pinctrl-rt2880.c ++=================================================================== ++--- linux-3.18.21.orig/drivers/pinctrl/pinctrl-rt2880.c +++++ linux-3.18.21/drivers/pinctrl/pinctrl-rt2880.c ++@@ -372,6 +372,11 @@ static int rt2880_pinmux_pins(struct rt2 ++ /* pin 0 is always a gpio */ ++ p->gpio[0] = 1; ++ +++ /* ditto pin 27 as we don't have a driver to represent spi_cs1 +++ * so we can't get pinmux to export them otherwise */ +++ +++ p->gpio[27] = 1; +++ ++ /* set the pads */ ++ for (i = 0; i < p->max_pins; i++) { ++ /* strlen("ioXY") + 1 = 5 */ +diff --git a/target/linux/ramips/patches-3.18/9997-rt5350-pinmux.patch b/target/linux/ramips/patches-3.18/9997-rt5350-pinmux.patch +new file mode 100644 +index 0000000..d02829c +--- /dev/null ++++ b/target/linux/ramips/patches-3.18/9997-rt5350-pinmux.patch +@@ -0,0 +1,18 @@ ++Index: linux-3.18.21/arch/mips/ralink/rt305x.c ++=================================================================== ++--- linux-3.18.21.orig/arch/mips/ralink/rt305x.c +++++ linux-3.18.21/arch/mips/ralink/rt305x.c ++@@ -35,7 +35,12 @@ static struct rt2880_pmx_func uartf_func ++ static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) }; ++ static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; ++ static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; ++-static struct rt2880_pmx_func rt5350_led_func[] = { FUNC("led", 0, 22, 5) }; +++static struct rt2880_pmx_func rt5350_led_func[] = { +++ FUNC("led", 0, 22, 5) , +++ FUNC("gpio", 1, 22, 5) , +++ FUNC("btmode", 2, 22, 5), +++}; +++ ++ static struct rt2880_pmx_func rt5350_cs1_func[] = { ++ FUNC("spi_cs1", 0, 27, 1), ++ FUNC("wdg_cs1", 1, 27, 1), +diff --git a/target/linux/ramips/rt305x/profiles/kkmoon.mk b/target/linux/ramips/rt305x/profiles/kkmoon.mk +new file mode 100644 +index 0000000..65ed584 +--- /dev/null ++++ b/target/linux/ramips/rt305x/profiles/kkmoon.mk +@@ -0,0 +1,18 @@ ++# ++# Copyright (C) 2014 OpenWrt.org ++# ++# This is free software, licensed under the GNU General Public License v2. ++# See /LICENSE for more information. ++# ++ ++define Profile/TP-C516W ++ NAME:=KKMoon TP-C516W ++ PACKAGES:=kmod-video-core kmod-video-uvc \ ++ kmod-usb-core kmod-usb-ohci \ ++ mjg-streamer ++endef ++ ++define Profile/TP-C516W/Description ++ Package set for KKMoon TP-C516W board ++endef ++$(eval $(call Profile,TP-C516W)) -- cgit v1.2.3