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 <ldpinney@gmail.com>
Acked-by: Drew Gaylo <drew@nixcores.com>
This commit is contained in:
L. D. Pinney 2016-07-06 19:24:52 -05:00 committed by John Crispin
parent 8876575601
commit cf8c77be6b
8 changed files with 270 additions and 0 deletions

View file

@ -77,6 +77,7 @@ ramips_setup_interfaces()
mt7628|\
mzk-750dhp|\
mzk-w300nh2|\
nixcore|\
oy-0001|\
pbr-m1|\
psg1208|\

View file

@ -322,6 +322,9 @@ ramips_board_detect() {
*"NCS601W")
name="ncs601w"
;;
*"NixcoreX1")
name="nixcore-x1"
;;
*"NW718")
name="nw718"
;;

View file

@ -95,6 +95,7 @@ platform_check_image() {
mzk-w300nh2|\
mzk-wdpr|\
nbg-419n|\
nixcore|\
nw718|\
oy-0001|\
pbr-m1|\

View file

@ -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>;
};
};
};

View file

@ -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>;
};
};
};

View file

@ -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";
};
};
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&esw {
mediatek,portmap = <0x17>;
};
&wmac {
ralink,mtd-eeprom = <&factory 0>;
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};

View file

@ -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))

View file

@ -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))