From cf8c77be6becf3c5e40e19e9c4ab0d0abdfb9291 Mon Sep 17 00:00:00 2001 From: "L. D. Pinney" Date: Wed, 6 Jul 2016 19:24:52 -0500 Subject: [PATCH] ramips: Add support for the NixCore X1 Module The NixCore X1 is a Ralink/MediaTek rt5350 WiFi Module. http://nixcores.com/ Signed-off-by: L. D. Pinney Acked-by: Drew Gaylo --- .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/NIXCORE-16M.dts | 39 +++++ target/linux/ramips/dts/NIXCORE-8M.dts | 39 +++++ target/linux/ramips/dts/NIXCORE.dtsi | 154 ++++++++++++++++++ target/linux/ramips/image/rt305x.mk | 13 ++ .../linux/ramips/rt305x/profiles/nixcore.mk | 20 +++ 8 files changed, 270 insertions(+) create mode 100644 target/linux/ramips/dts/NIXCORE-16M.dts create mode 100644 target/linux/ramips/dts/NIXCORE-8M.dts create mode 100644 target/linux/ramips/dts/NIXCORE.dtsi create mode 100644 target/linux/ramips/rt305x/profiles/nixcore.mk 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 1e605d742b80..f8b8ec66bdc7 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -77,6 +77,7 @@ ramips_setup_interfaces() mt7628|\ mzk-750dhp|\ mzk-w300nh2|\ + nixcore|\ oy-0001|\ pbr-m1|\ psg1208|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 10139d7fc620..b6ccd5ace331 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -322,6 +322,9 @@ ramips_board_detect() { *"NCS601W") name="ncs601w" ;; + *"NixcoreX1") + name="nixcore-x1" + ;; *"NW718") name="nw718" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index e3bea004fa9f..c4d3c0136713 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -95,6 +95,7 @@ platform_check_image() { mzk-w300nh2|\ mzk-wdpr|\ nbg-419n|\ + nixcore|\ nw718|\ oy-0001|\ pbr-m1|\ diff --git a/target/linux/ramips/dts/NIXCORE-16M.dts b/target/linux/ramips/dts/NIXCORE-16M.dts new file mode 100644 index 000000000000..8f848f41af9e --- /dev/null +++ b/target/linux/ramips/dts/NIXCORE-16M.dts @@ -0,0 +1,39 @@ +/dts-v1/; + +#include "NIXCORE.dtsi" + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + linux,modalias = "m25p80"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "uboot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "uboot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; +}; diff --git a/target/linux/ramips/dts/NIXCORE-8M.dts b/target/linux/ramips/dts/NIXCORE-8M.dts new file mode 100644 index 000000000000..66458676d34c --- /dev/null +++ b/target/linux/ramips/dts/NIXCORE-8M.dts @@ -0,0 +1,39 @@ +/dts-v1/; + +#include "NIXCORE.dtsi" + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + linux,modalias = "m25p80"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "uboot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "uboot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x7b0000>; + }; + }; +}; diff --git a/target/linux/ramips/dts/NIXCORE.dtsi b/target/linux/ramips/dts/NIXCORE.dtsi new file mode 100644 index 000000000000..4c233d24ba71 --- /dev/null +++ b/target/linux/ramips/dts/NIXCORE.dtsi @@ -0,0 +1,154 @@ +#include "rt5350.dtsi" + +/ { + compatible = "Nixcore", "ralink,rt5350-soc"; + model = "Nixcore"; + + chosen { + bootargs = "console=ttyS1,57600"; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + gpio0 { + gpio-export,name = "gpio0"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 0 0>; + }; + + gpio1 { + gpio-export,name = "gpio1"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 0 0>; + }; + + /* GPIOs 1-6 are I2C,SPI */ + /* GPIO 7-14 are uart1 */ + /* GPIOs 15 & 16 are uart2 */ + /* JTAG */ + + gpio17 { + /* JTAG_TDO */ + gpio-export,name = "gpio17"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 17 0>; + }; + + gpio18 { + /* JTAG_TDI */ + gpio-export,name = "gpio18"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 18 0>; + }; + + gpio19 { + /* JTAG_TMS */ + gpio-export,name = "gpio19"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 19 0>; + }; + + gpio20 { + /* JTAG_TCLK */ + gpio-export,name = "gpio20"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 20 0>; + }; + + gpio21 { + /* JTAG_TRST_N */ + gpio-export,name = "gpio21"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 21 0>; + }; + + /* ETH LEDs */ + /* + gpio22 { + gpio-export,name = "gpio22"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 0 0>; + }; + + gpio23 { + gpio-export,name = "gpio23"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 1 0>; + }; + + gpio24 { + gpio-export,name = "gpio24"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 2 0>; + }; + + gpio25 { + gpio-export,name = "gpio25"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 3 0>; + }; + + */ + gpio26 { + /* ETH4_LED */ + gpio-export,name = "gpio26"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 4 0>; + }; + + gpio27 { + /* spi_cs1 */ + gpio-export,name = "gpio27"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 5 0>; + }; + }; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&i2c { + status = "okay"; +}; + +&uart { + status = "okay"; + reset-names = "gpio uartf"; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "jtag", "led", "spi_cs1"; + ralink,function = "gpio"; + }; + }; +}; + +ðernet { + mtd-mac-address = <&factory 0x4>; +}; + +&esw { + mediatek,portmap = <0x17>; +}; + +&wmac { + ralink,mtd-eeprom = <&factory 0>; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; diff --git a/target/linux/ramips/image/rt305x.mk b/target/linux/ramips/image/rt305x.mk index 96175747d775..193d4e4e57e9 100644 --- a/target/linux/ramips/image/rt305x.mk +++ b/target/linux/ramips/image/rt305x.mk @@ -100,6 +100,17 @@ define BuildFirmware/HLKRM04/initramfs mkhilinkfw -e -i$(call imgname,$(1),$(2))-uImage.bin -o $(call imgname,$(1),$(2))-factory.bin; endef +nixcore_8mb_mtd_size=8060928 +nixcore_16mb_mtd_size=16449536 +define BuildFirmware/NIXCORE/squashfs + $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(nixcore_8mb_mtd_size)) + $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(nixcore_16mb_mtd_size)) +endef +define BuildFirmware/NIXCORE/initramfs + $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M) + $(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M) +endef + vocore_8mb_mtd_size=8060928 vocore_16mb_mtd_size=16449536 define BuildFirmware/VOCORE/squashfs @@ -258,6 +269,7 @@ Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2 Image/Build/Profile/MZKWDPR=$(call BuildFirmware/Default8M/$(1),$(1),mzk-wdpr,MZK-WDPR) Image/Build/Profile/NCS601W=$(call BuildFirmware/Default8M/$(1),$(1),ncs601W,NCS601W) nw718_mtd_size=3801088 +Image/Build/Profile/NIXCORE=$(call BuildFirmware/NIXCORE/$(1),$(1),nixcore,NIXCORE) Image/Build/Profile/NW718=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),nw718m,NW718,$(nw718_mtd_size),ARA1B4NCRNW718;1,factory) Image/Build/Profile/M2M=$(call BuildFirmware/Default8M/$(1),$(1),m2m,M2M,Linux Kernel Image) Image/Build/Profile/MINIEMBPLUG=$(call BuildFirmware/Default8M/$(1),$(1),miniembplug,MINIEMBPLUG) @@ -353,6 +365,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/MZKWDPR,$(1)) $(call Image/Build/Profile/NBG-419N,$(1)) $(call Image/Build/Profile/NCS601W,$(1)) + $(call Image/Build/Profile/NIXCORE,$(1)) $(call Image/Build/Profile/NW718,$(1)) $(call Image/Build/Profile/MINIEMBWIFI,$(1)) $(call Image/Build/Profile/MINIEMBPLUG,$(1)) diff --git a/target/linux/ramips/rt305x/profiles/nixcore.mk b/target/linux/ramips/rt305x/profiles/nixcore.mk new file mode 100644 index 000000000000..475053c934c3 --- /dev/null +++ b/target/linux/ramips/rt305x/profiles/nixcore.mk @@ -0,0 +1,20 @@ +# +# Copyright (C) 2016 lede-project.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/NIXCORE + NAME:=NixcoreX1 + PACKAGES:=\ + kmod-usb-core kmod-usb-ohci kmod-usb2 \ + kmod-i2c-core kmod-i2c-ralink \ + kmod-spi-dev +endef + +define Profile/NIXCORE/Description + Package set for Nixcore X1 board +endef + +$(eval $(call Profile,NIXCORE)) -- 2.30.2