From e55d86ef323377b40d35cf9d927cd2370e8d4842 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 26 Apr 2016 11:43:01 +0000 Subject: [PATCH] ramips: add support for Planex CS-QR10 CS-QR10 is MT7620A based IP Camera. the camera and sound does not work with kernel 4.4. - camera chip is sn9c291. - sound chip is wm8960. Signed-off-by: YuheiOKAWA SVN-Revision: 49234 --- .../ramips/base-files/etc/board.d/01_leds | 3 +- .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/etc/diag.sh | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/CS-QR10.dts | 163 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 2 + target/linux/ramips/mt7620/profiles/planex.mk | 14 ++ 8 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/CS-QR10.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index e3b8500d373b..367801d29c6f 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -30,7 +30,8 @@ br-6475nd|\ mzk-w300nh2) set_wifi_led "$board:amber:wlan" ;; -a5-v11) +a5-v11|\ +cs-qr10) ucidef_set_led_default "power" "POWER" "$board:red:power" "1" ;; ai-br100) diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 3c958ae06b69..dc3d1bc2ad36 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -160,6 +160,7 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0" ;; + cs-qr10|\ d105|\ hpm|\ na930|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index bd0ff05c7290..2d43f54fbb23 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -33,6 +33,7 @@ get_status_led() { status_led="$board:green:power" ;; a5-v11|\ + cs-qr10|\ d105|\ dcs-930l-b1|\ ex2700|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 550ec55cd2c9..73dd599605ed 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -88,6 +88,9 @@ ramips_board_detect() { *"CF-WR800N") name="cf-wr800n" ;; + *"CS-QR10") + name="cs-qr10" + ;; *"CY-SWR1100") name="cy-swr1100" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 73ba6e61b529..f153b0289ef8 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -34,6 +34,7 @@ platform_check_image() { broadway|\ carambola|\ cf-wr800n|\ + cs-qr10|\ d105|\ dap-1350|\ db-wrt01|\ diff --git a/target/linux/ramips/dts/CS-QR10.dts b/target/linux/ramips/dts/CS-QR10.dts new file mode 100644 index 000000000000..08299e313be7 --- /dev/null +++ b/target/linux/ramips/dts/CS-QR10.dts @@ -0,0 +1,163 @@ +/dts-v1/; + +/include/ "mt7620a.dtsi" + +/ { + compatible = "ralink,mt7620a-soc"; + model = "Planex CS-QR10"; + + palmbus@10000000 { + gpio0: gpio@600 { + status = "okay"; + }; + + gpio1: gpio@638 { + status = "okay"; + }; + + gpio2: gpio@660 { + status = "okay"; + }; + + gpio3: gpio@688 { + status = "okay"; + }; + + i2c@900 { + status = "okay"; + }; + + i2s: i2s@a00 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pcm_i2s_pins>; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0 0>; + linux,modalias = "m25p80", "mx25l6405d"; + 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>; + }; + }; + }; + + pcm@2000 { + status = "okay"; + }; + + gdma@2800 { + status = "okay"; + }; + }; + + pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "spi refclk", "rgmii1"; + ralink,function = "gpio"; + }; + wdt { + ralink,group = "wdt"; + ralink,function = "wdt refclk"; + }; + }; + }; + + ethernet@10100000 { + pinctrl-names = "default"; + pinctrl-0 = <&ephy_pins>; + mtd-mac-address = <&factory 0x4>; + mediatek,portmap = "llllw"; + }; + + gsw@10110000 { + ralink,port4 = "ephy"; + }; + + sdhci@10130000 { + status = "okay"; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + pcie@10140000 { + status = "okay"; + }; + + sound { + compatible = "mediatek,mt7620-audio-wm8960"; + model = "mt7620-wm8960"; + i2s-controller = <&i2s>; + audio-routing = + "Ext Spk", "SPK_LP", + "Ext Spk", "SPK_LN", + "Ext Spk", "SPK_RP", + "Ext Spk", "SPK_RN"; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power { + label = "cs-qr10:red:power"; + gpios = <&gpio1 4 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + s1 { + label = "reset"; + gpios = <&gpio1 1 1>; + linux,code = <0x198>; + }; + + s2 { + label = "wps"; + gpios = <&gpio1 3 1>; + linux,code = <0x211>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index c76e98e80974..d74215140152 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -95,6 +95,7 @@ whr_1166d_mtd_size=15400960 Image/Build/Profile/WHR1166D=$(call BuildFirmware/CustomFlash/$(1),$(1),whr-1166d,WHR-1166D,$(whr_1166d_mtd_size)) dlink810l_mtd_size=6881280 Image/Build/Profile/CF-WR800N=$(call BuildFirmware/Default8M/$(1),$(1),cf-wr800n,CF-WR800N) +Image/Build/Profile/CS-QR10=$(call BuildFirmware/Default8M/$(1),$(1),cs-qr10,CS-QR10) Image/Build/Profile/DIR-810L=$(call BuildFirmware/CustomFlash/$(1),$(1),dir-810l,DIR-810L,$(dlink810l_mtd_size)) na930_mtd_size=20971520 Image/Build/Profile/NA930=$(call BuildFirmware/CustomFlash/$(1),$(1),na930,NA930,$(na930_mtd_size)) @@ -138,6 +139,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/MT7620a_V22SG,$(1)) $(call Image/Build/Profile/AI-BR100,$(1)) $(call Image/Build/Profile/CF-WR800N,$(1)) + $(call Image/Build/Profile/CS-QR10,$(1)) $(call Image/Build/Profile/RP-N53,$(1)) $(call Image/Build/Profile/DIR-810L,$(1)) $(call Image/Build/Profile/WHR300HP2,$(1)) diff --git a/target/linux/ramips/mt7620/profiles/planex.mk b/target/linux/ramips/mt7620/profiles/planex.mk index f6f2cf187cb9..15560ab50df6 100644 --- a/target/linux/ramips/mt7620/profiles/planex.mk +++ b/target/linux/ramips/mt7620/profiles/planex.mk @@ -5,6 +5,20 @@ # See /LICENSE for more information. # +define Profile/CS-QR10 + NAME:=Planex CS-QR10 + PACKAGES:=\ + kmod-usb-core kmod-usb2 kmod-usb-ohci \ + i2c-core kmod-i2c-ralink kmod-sound-core kmod-sound-mtk \ + kmod-sdhci-mt7620 +endef + +define Profile/CS-QR10/Description + Package set optimized for the Planex CS-QR10. +endef +$(eval $(call Profile,CS-QR10)) + + define Profile/MZK-750DHP NAME:=Planex MZK-750DHP PACKAGES:= kmod-mt76 kmod-mt7610e -- 2.30.2