Hi, > -----Original Message----- > From: openwrt-devel [mailto:[email protected]] > On Behalf Of Robinson Wu > Sent: Freitag, 17. Juli 2020 09:33 > To: [email protected] > Cc: Robinson Wu <[email protected]> > Subject: [PATCH v7] ramips: add support for JS76x8 series DEV boards
sorry for coming up with another bunch of remarks; I'm confident that we at least have everything covered now. > > This commit adds support for the Jotale JS76x8 series development boards. > These devices have the following specifications: > > - SOC: MT7628AN/NN, MT7688AN, MT7628DAN > - RAM of MT7628AN/NN and MT7688AN: 64/128/256 MB (DDR2) > - RAM of MT7628DAN: 64 MB (DDR2) > - FLASH:8/16/32 MB (SPI NOR) > - Ethernet:3x 10/100 Mbps ethernet ports (MT76x8 built-in switch) > - WIFI:1x 2T2R 2.4 GHz Wi-Fi > - LEDs:1x system status green LED, 1x wifi green LED, > 3x ethernet green LED > - Buttons:1x reset button, 2x user defined button User-defined buttons are not set up in DTS? > - 1x microSD slot > - 4x USB 2.0 port > - 1x mini-usb debug UART > - 1x DC jack for main power (DC 5V) > - 1x TTL/RS232 UART > - 1x TTL/RS485 UART > - 13x GPIO header > - 1x audio codec(wm8960) > > Installation via OpenWrt: > > The original firmware is OpenWrt, so both LuCI and sysupgrade can be used. > > Installation via U-boot web: > > 1. Power on board with reset button pressed, release it > after wifi led start blinking. > 2. Setup static IP 192.168.1.123/4 on your PC. > 3. Go to 192.168.1.8 in browser and upload "sysupgrade" image. > > Installation via U-boot tftp: > 1. Connect to serial console at the mini usb, which has been connected to > UART0 > on board (115200 8N1) > 2. Setup static IP 192.168.1.123/4 on your PC. > 3. Place openwrt-firmware.bin on your PC tftp server (192.168.1.123). > 3. Connect one of LAN ports on board to your PC. > 4. Start terminal software (e.g. screen /dev/ttyUSB0 115200) on PC. > 5. Apply power to board. > 6. Interrupt U-boot with keypress of "2". > 7. At u-boot prompts: > Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) Y > Input device IP (192.168.1.8) ==:192.168.1.8 > Input server IP (192.168.1.123) ==:192.168.1.123 > Input Linux Kernel filename (root_uImage) ==:openwrt-firmware.bin 8. > board will download file from tftp server, write it to flash and reboot. > > Signed-off-by: Robinson Wu <[email protected]> > --- > .../ramips/dts/mt7628an_jotale_js76x8-16m.dts | 12 ++ > .../ramips/dts/mt7628an_jotale_js76x8-32m.dts | 12 ++ > .../linux/ramips/dts/mt7628an_jotale_js76x8-8m.dts | 12 ++ > .../linux/ramips/dts/mt7628an_jotale_js76x8.dtsi | 145 > +++++++++++++++++++++ > target/linux/ramips/image/mt76x8.mk | 27 ++++ > .../ramips/mt76x8/base-files/etc/board.d/01_leds | 6 + > .../mt76x8/base-files/etc/board.d/02_network | 6 + > 7 files changed, 220 insertions(+) > create mode 100644 target/linux/ramips/dts/mt7628an_jotale_js76x8- > 16m.dts > create mode 100644 target/linux/ramips/dts/mt7628an_jotale_js76x8- > 32m.dts > create mode 100644 target/linux/ramips/dts/mt7628an_jotale_js76x8- > 8m.dts > create mode 100644 target/linux/ramips/dts/mt7628an_jotale_js76x8.dtsi > > diff --git a/target/linux/ramips/dts/mt7628an_jotale_js76x8-16m.dts > b/target/linux/ramips/dts/mt7628an_jotale_js76x8-16m.dts > new file mode 100644 > index 0000000..53ed6d8 > --- /dev/null > +++ b/target/linux/ramips/dts/mt7628an_jotale_js76x8-16m.dts > @@ -0,0 +1,12 @@ > +/dts-v1/; Please add an SPDX license identifier to the top of all DTS(I) files. The typical/default choice is // SPDX-License-Identifier: GPL-2.0-or-later OR MIT Look e.g. in https://github.com/openwrt/openwrt/blob/master/target/linux/ramips/dts/mt7628an_tplink_archer-c20-v5.dts > + > +#include "mt7628an_jotale_js76x8.dtsi" > + > +/ { > + compatible = "jotale,js76x8-16m", "jotale,js76x8", > "mediatek,mt7628an-soc"; > + model = "Jotale JS76x8 (16M)"; > +}; > + > +&firmware { > + reg = <0x50000 0xfb0000>; > +}; > diff --git a/target/linux/ramips/dts/mt7628an_jotale_js76x8-32m.dts > b/target/linux/ramips/dts/mt7628an_jotale_js76x8-32m.dts > new file mode 100644 > index 0000000..851e6db > --- /dev/null > +++ b/target/linux/ramips/dts/mt7628an_jotale_js76x8-32m.dts > @@ -0,0 +1,12 @@ > +/dts-v1/; > + > +#include "mt7628an_jotale_js76x8.dtsi" > + > +/ { > + compatible = "jotale,js76x8-32m", "jotale,js76x8", > "mediatek,mt7628an-soc"; > + model = "Jotale JS76x8 (32M)"; > +}; > + > +&firmware { > + reg = <0x50000 0x1fb0000>; > +}; > diff --git a/target/linux/ramips/dts/mt7628an_jotale_js76x8-8m.dts > b/target/linux/ramips/dts/mt7628an_jotale_js76x8-8m.dts > new file mode 100644 > index 0000000..8cac3fb > --- /dev/null > +++ b/target/linux/ramips/dts/mt7628an_jotale_js76x8-8m.dts > @@ -0,0 +1,12 @@ > +/dts-v1/; > + > +#include "mt7628an_jotale_js76x8.dtsi" > + > +/ { > + compatible = "jotale,js76x8-8m", "mediatek,mt7628an-soc"; > + model = "Jotale JS76x8 (8M)"; > +}; > + > +&firmware { > + reg = <0x50000 0x7b0000>; > +}; > diff --git a/target/linux/ramips/dts/mt7628an_jotale_js76x8.dtsi > b/target/linux/ramips/dts/mt7628an_jotale_js76x8.dtsi > new file mode 100644 > index 0000000..cc858a9 > --- /dev/null > +++ b/target/linux/ramips/dts/mt7628an_jotale_js76x8.dtsi > @@ -0,0 +1,145 @@ > +#include "mt7628an.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + compatible = "jotale,js76x8", "mediatek,mt7628an-soc"; > + > + aliases { > + led-boot = &led_system; > + led-failsafe = &led_system; > + led-running = &led_system; > + led-upgrade = &led_system; > + }; > + > + chosen { > + bootargs = "console=ttyS0,115200"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led_system: system { > + label = "js76x8:green:system"; > + gpios = <&gpio 37 GPIO_ACTIVE_LOW>; > + }; > + > + wifi { > + label = "js76x8:green:wifi"; > + gpios = <&gpio 44 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + reset { > + label = "reset"; > + gpios = <&gpio 38 GPIO_ACTIVE_HIGH>; > + linux,code = <KEY_RESTART>; > + }; > + }; > +}; > + > +&pinctrl { > + state_default: pinctrl0 { state_default can be referenced directly with &state_default, so you can remove the enclosing &pinctrl here. > + gpio { > + group = "gpio","p3led_an","p4led_an", > + "pwm0","pwm1","refclk","wdt","wled_an"; I only see refclk, wdt and wlan_an required for the keys/leds above. Can the rest be dropped? (This might change if the missing user-defined buttons are added.) Despite, this should be "groups" instead of "group". > + function = "gpio"; > + }; > + > + p0led { > + group = "p0led_an"; > + function = "p0led_an"; > + }; Do you need these block with function != gpio ? There is only a single other DTS in 76 files for mt7628 that defines nodes like that. Despite, with "group" instead of "groups", I suspect they didn't do much so far anyway. > + > + p1led { > + group = "p1led_an"; > + function = "p1led_an"; > + }; > + > + p2led { > + group = "p2led_an"; > + function = "p2led_an"; > + }; > + > + i2s { > + group = "i2s"; > + function = "i2s"; > + }; > + }; > +}; > + > +&spi0 { > + status = "okay"; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&spi_pins>, <&spi_cs1_pins>; Is the latter still needed with spidev@1 removed? > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <40000000>; > + m25p,chunked-io = <32>; > + > + partitions { > + compatible = "fixed-partitions"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + 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; > + }; > + > + firmware: partition@50000 { > + compatible = "denx,uimage"; > + label = "firmware"; Maybe add a comment here, something like "// reg property is set based on flash size in DTS files" > + }; > + }; > + }; > +}; > + > +&i2c { > + status = "okay"; > +}; > + > +&i2s { > + status = "okay"; > +}; > + > +&uart1 { > + status = "okay"; > +}; > + > +&uart2 { > + status = "okay"; > +}; > + > +ðernet { > + mtd-mac-address = <&factory 0x28>; > +}; > + > +&sdhci { > + status = "okay"; > + mediatek,cd-low; > +}; > + > +&wmac { > + status = "okay"; > +}; > diff --git a/target/linux/ramips/image/mt76x8.mk > b/target/linux/ramips/image/mt76x8.mk > index de92c98..90dd418 100644 > --- a/target/linux/ramips/image/mt76x8.mk > +++ b/target/linux/ramips/image/mt76x8.mk > @@ -160,6 +160,33 @@ define Device/iptime_a604m endef > TARGET_DEVICES += iptime_a604m > > +define Device/jotale_js76x8 > + DEVICE_VENDOR := Jotale > + DEVICE_MODEL := JS76x8 > + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci endef > + > +define Device/jotale_js76x8-8m > + $(Device/jotale_js76x8) > + IMAGE_SIZE := 7872k > + DEVICE_VARIANT := 8M > +endef > +TARGET_DEVICES += jotale_js76x8-8m > + > +define Device/jotale_js76x8-16m > + $(Device/jotale_js76x8) > + IMAGE_SIZE := 16064k > + DEVICE_VARIANT := 16M > +endef > +TARGET_DEVICES += jotale_js76x8-16m > + > +define Device/jotale_js76x8-32m > + $(Device/jotale_js76x8) > + IMAGE_SIZE := 32448k > + DEVICE_VARIANT := 32M > +endef > +TARGET_DEVICES += jotale_js76x8-32m > + > define Device/mediatek_linkit-smart-7688 > IMAGE_SIZE := 32448k > DEVICE_VENDOR := MediaTek > diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > index 1e478df..afffd31 100755 > --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds > @@ -46,6 +46,12 @@ hiwifi,hc5661a|\ > hiwifi,hc5761a) > ucidef_set_led_switch "internet" "internet" > "$boardname:blue:internet" "switch0" "0x10" > ;; > +jotale,js76x8-8m|\ > +jotale,js76x8-16m|\ > +jotale,js76x8-32m) > + ucidef_set_led_timer "system" "system" "js76x8:green:system" What's the purpose of this one? ucidef_set_led_timer is almost never used in the entire tree. If it's meant for a "blinking" LED I'd consider dropping it, as successful boot is indicated by a solid LED, while blinking means boot in progress ... > "1000" "1000" > + set_wifi_led "js76x8:green:wifi" Would you implement this via a DTS trigger instead, e.g. as done here: https://github.com/openwrt/openwrt/blob/master/target/linux/ramips/dts/mt7628an_tplink_archer-c20-v5.dts#L44 > + ;; > mediatek,linkit-smart-7688) > ucidef_set_led_wlan "wifi" "wifi" "linkit-smart-7688:orange:wifi" > "phy0tpt" > ;; > diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > index e3d18b5..f7a7d8b 100755 > --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network > @@ -32,6 +32,9 @@ ramips_setup_interfaces() > asus,rt-n11p-b1|\ > asus,rt-n12-vp-b1|\ > hiwifi,hc5661a|\ > + jotale,js76x8-8m|\ > + jotale,js76x8-16m|\ > + jotale,js76x8-32m|\ This sets up 4x LAN and 1x WAN, you were talking about 3 ethernet ports (without LAN/WAN specified) in your commit message? Let's finally get this done. :-) Best Adrian > mediatek,mt7628an-eval-board|\ > mercury,mac1200r-v2|\ > totolink,lr1200|\ > @@ -192,6 +195,9 @@ ramips_setup_macs() > wiznet,wizfi630s) > wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory > 0x28)" 1) > ;; > + jotale,js76x8-8m|\ > + jotale,js76x8-16m|\ > + jotale,js76x8-32m|\ > skylab,skw92a|\ > totolink,lr1200) > wan_mac=$(mtd_get_mac_binary factory 0x2e) > -- > 2.7.4 > > > _______________________________________________ > openwrt-devel mailing list > [email protected] > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
openpgp-digital-signature.asc
Description: PGP signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
