Message ID | 20190624161320.7316-1-daniel@dd-wrt.com |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | [OpenWrt-Devel] ramips: mt7621: Add new device AsiaRF AP7621-001 | expand |
On Monday, June 24, 2019 6:13:20 PM CEST Daniel Danzberger wrote: > SoC: Mediatek MT7621A > CPU: 4x 880Mhz > Cache: 32 KB I-Cache and 32 KB D-Cach > 256 KB L2 Cache (shared by Dual-Core) > RAM: DDR3 512MB 16bits BUS > FLASH: 16MB > Switch: Mediatek Gigabit Switch (1 x LAN, 1 x WAN) > USB: 1x 3.0 > PCI: 3x Mini PCIe > GPS: Quectel L70B > BTN: Reset > LED: - Power > - Ethernet > - Wifi > - USB > UART: UART is present as Pads with throughholes on the PCB. > They are located on left side. > 3.3V - RX - GND - TX / 57600-8N1 > 3.3V is the square pad > > Installation > ------------ > The stock image is a modified openwrt and can be overflashed via sysupgrade -F > > Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com> > --- > .../ramips/base-files/etc/board.d/02_network | 3 + > target/linux/ramips/dts/AP7621-001.dts | 127 ++++++++++++++++++ > target/linux/ramips/image/mt7621.mk | 10 ++ > 3 files changed, 140 insertions(+) > create mode 100644 target/linux/ramips/dts/AP7621-001.dts > > 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 52204eacbf..ffd1689263 100755 > --- a/target/linux/ramips/base-files/etc/board.d/02_network > +++ b/target/linux/ramips/base-files/etc/board.d/02_network > @@ -39,6 +39,9 @@ ramips_setup_interfaces() > ucidef_add_switch "switch0" \ > "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0" > ;; > + asiarf,ap7621-001) > + ucidef_add_switch "switch0" "0:lan" "4:wan" "6@eth0" > + ;; > 3g150b|\ > 3g300m|\ > a5-v11|\ > diff --git a/target/linux/ramips/dts/AP7621-001.dts b/target/linux/ramips/dts/AP7621-001.dts > new file mode 100644 > index 0000000000..daab06ec90 > --- /dev/null > +++ b/target/linux/ramips/dts/AP7621-001.dts > @@ -0,0 +1,127 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > + > +/dts-v1/; > +#include "mt7621.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + compatible = "asiarf,ap7621-001", "mediatek,mt7621-soc"; > + model = "AP7621-001"; Oh boy, this is tricky. <https://github.com/devicetree-org/devicetree-specification/blob/4b1dac80eaca45b4babf5299452a951008a5d864/source/devicenodes.rst> 'The recommended format ' (for the root node!) ' is "manufacturer,model-number".' BUT. Thing is, this string here gets printed on the LuCI system page and from past experience "Manugacturer Model" works best. > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x1c000000>, <0x20000000 0x4000000>; > + }; > + > + chosen { > + bootargs = "console=ttyS0,57600"; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + reset { > + label = "reset"; > + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_RESTART>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + wlan1 { > + label = "ap7621-001:orange:wlan1"; > + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; > + }; > + > + wlan0 { > + label = "ap7621-001:orange:wlan0"; > + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; > + }; > + }; > +}; > + > +&sdhci { > + status = "okay"; > +}; > + > +&spi0 { > + status = "okay"; please use tabs here. > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <40000000>; > + > + partitions { this needs one more tab. > + compatible = "fixed-partitions"; > + #address-cells = <1>; please use tabs to ident most of the properies for the rest of the node. (scripts/checkpatch.pl will catch those lines) > + #size-cells = <1>; > + > + partition@0 { > + label = "u-boot"; > + reg = <0x0 0x30000>; > + read-only; > + }; > + > + partition@30000 { > + label = "u-boot-env"; > + reg = <0x30000 0x2000>; needs read-only; > + }; > + > + partition@32000 { > + label = "2860"; > + reg = <0x32000 0x4000>; needs read-only; > + }; > + > + partition@36000 { > + label = "rtdev"; > + reg = <0x36000 0x2000>; needs read-only; > + }; > + > + partition@38000 { > + label = "Reserve"; > + reg = <0x38000 0x8000>; needs read-only; > + }; > + > + factory: partition@40000 { > + label = "factory"; > + reg = <0x40000 0x10000>; > + read-only; > + }; > + > + firmware: partition@50000 { > + label = "firmware"; > + reg = <0x50000 0xfa0000>; > + compatible = "denx,uimage"; > + }; > + > + partition@ff0000 { > + label = "nvram"; > + reg = <0xff0000 0x10000>; needs read-only; > + }; > + }; > + }; > +}; > + > +&pcie { > + status = "okay"; > +}; > + > +ðernet { > + mtd-mac-address = <&factory 0xe000>; > + mediatek,portmap = "llllw"; > +}; > + > +&pinctrl { > + state_default: pinctrl0 { > + gpio { > + ralink,group = "wdt", "jtag"; > + ralink,function = "gpio"; > + }; > + }; > +}; > + > diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk > index 2eb7feb5bf..c1e445f84c 100644 > --- a/target/linux/ramips/image/mt7621.mk > +++ b/target/linux/ramips/image/mt7621.mk > @@ -640,3 +640,13 @@ define Device/zbt-wg3526-32M > kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic > endef > TARGET_DEVICES += zbt-wg3526-32M > + > +define Device/asiarf_ap7621-001 > + DTS := AP7621-001 > + IMAGE_SIZE := $(ralink_default_fw_size_16M) > + DEVICE_TITLE := AsiaRF AP7621-001 > + DEVICE_PACKAGES := \ > + kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 > +endef > +TARGET_DEVICES += asiarf_ap7621-001 > + >
On 6/24/19 10:17 PM, Christian Lamparter wrote: >> diff --git a/target/linux/ramips/dts/AP7621-001.dts b/target/linux/ramips/dts/AP7621-001.dts >> new file mode 100644 >> index 0000000000..daab06ec90 >> --- /dev/null >> +++ b/target/linux/ramips/dts/AP7621-001.dts >> @@ -0,0 +1,127 @@ >> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT >> + >> +/dts-v1/; >> +#include "mt7621.dtsi" >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> + >> +/ { >> + compatible = "asiarf,ap7621-001", "mediatek,mt7621-soc"; >> + model = "AP7621-001"; > > Oh boy, this is tricky. > > <https://github.com/devicetree-org/devicetree-specification/blob/4b1dac80eaca45b4babf5299452a951008a5d864/source/devicenodes.rst> > 'The recommended format ' (for the root node!) ' is "manufacturer,model-number".' > > BUT. Thing is, this string here gets printed on the LuCI system > page and from past experience "Manugacturer Model" works best. > I am not sure if using a blank instead of ',' is a good idea, because of sysupgrade and the device tree board detection. All other DTS files use ',' in DTS and '_' in their Makefile. Are you sure about this one ?
Daniel Danzberger <daniel@dd-wrt.com> [2019-06-25 10:34:47]: > >> + model = "AP7621-001"; > > > > Oh boy, this is tricky. > > > > <https://github.com/devicetree-org/devicetree-specification/blob/4b1dac80eaca45b4babf5299452a951008a5d864/source/devicenodes.rst> > > 'The recommended format ' (for the root node!) ' is "manufacturer,model-number".' > > > > BUT. Thing is, this string here gets printed on the LuCI system > > page and from past experience "Manugacturer Model" works best. > > > I am not sure if using a blank instead of ',' is a good idea, because of > sysupgrade and the device tree board detection. > All other DTS files use ',' in DTS and '_' in their Makefile. > > Are you sure about this one ? Yes, Christian is talking about model property, not the compatible property. model = "AsiaRF AP7621-001"; -- ynezz
I see. I will change the model property then... On 6/25/19 10:39 AM, Petr Štetiar wrote: > Daniel Danzberger <daniel@dd-wrt.com> [2019-06-25 10:34:47]: > >>>> + model = "AP7621-001"; >>> >>> Oh boy, this is tricky. >>> >>> <https://github.com/devicetree-org/devicetree-specification/blob/4b1dac80eaca45b4babf5299452a951008a5d864/source/devicenodes.rst> >>> 'The recommended format ' (for the root node!) ' is "manufacturer,model-number".' >>> >>> BUT. Thing is, this string here gets printed on the LuCI system >>> page and from past experience "Manugacturer Model" works best. >>> >> I am not sure if using a blank instead of ',' is a good idea, because of >> sysupgrade and the device tree board detection. >> All other DTS files use ',' in DTS and '_' in their Makefile. >> >> Are you sure about this one ? > > Yes, Christian is talking about model property, not the compatible property. > > model = "AsiaRF AP7621-001"; > > -- ynezz >
On Tuesday, June 25, 2019 10:34:47 AM CEST Daniel Danzberger wrote: > > On 6/24/19 10:17 PM, Christian Lamparter wrote: > >> diff --git a/target/linux/ramips/dts/AP7621-001.dts b/target/linux/ramips/dts/AP7621-001.dts > >> new file mode 100644 > >> index 0000000000..daab06ec90 > >> --- /dev/null > >> +++ b/target/linux/ramips/dts/AP7621-001.dts > >> @@ -0,0 +1,127 @@ > >> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > >> + > >> +/dts-v1/; > >> +#include "mt7621.dtsi" > >> + > >> +#include <dt-bindings/gpio/gpio.h> > >> +#include <dt-bindings/input/input.h> > >> + > >> +/ { > >> + compatible = "asiarf,ap7621-001", "mediatek,mt7621-soc"; > >> + model = "AP7621-001"; > > > > Oh boy, this is tricky. > > > > <https://github.com/devicetree-org/devicetree-specification/blob/4b1dac80eaca45b4babf5299452a951008a5d864/source/devicenodes.rst> > > 'The recommended format ' (for the root node!) ' is "manufacturer,model-number".' > > > > BUT. Thing is, this string here gets printed on the LuCI system > > page and from past experience "Manufacturer Model" works best. > > > I am not sure if using a blank instead of ',' is a good idea, because of > sysupgrade and the device tree board detection. > All other DTS files use ',' in DTS and '_' in their Makefile. > > Are you sure about this one ? > Hm, I think this is a misunderstanding? The compatible "asiarf,ap7621-001" is fine. But the "model" property could use the manufacturer. (Note: The sysupgrade codes uses the first compatible string, not the model) Cheers, Christian
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 52204eacbf..ffd1689263 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -39,6 +39,9 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0" ;; + asiarf,ap7621-001) + ucidef_add_switch "switch0" "0:lan" "4:wan" "6@eth0" + ;; 3g150b|\ 3g300m|\ a5-v11|\ diff --git a/target/linux/ramips/dts/AP7621-001.dts b/target/linux/ramips/dts/AP7621-001.dts new file mode 100644 index 0000000000..daab06ec90 --- /dev/null +++ b/target/linux/ramips/dts/AP7621-001.dts @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; +#include "mt7621.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + compatible = "asiarf,ap7621-001", "mediatek,mt7621-soc"; + model = "AP7621-001"; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x1c000000>, <0x20000000 0x4000000>; + }; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + }; + }; + + leds { + compatible = "gpio-leds"; + + wlan1 { + label = "ap7621-001:orange:wlan1"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + + wlan0 { + label = "ap7621-001:orange:wlan0"; + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&sdhci { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <40000000>; + + 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 0x2000>; + }; + + partition@32000 { + label = "2860"; + reg = <0x32000 0x4000>; + }; + + partition@36000 { + label = "rtdev"; + reg = <0x36000 0x2000>; + }; + + partition@38000 { + label = "Reserve"; + reg = <0x38000 0x8000>; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + firmware: partition@50000 { + label = "firmware"; + reg = <0x50000 0xfa0000>; + compatible = "denx,uimage"; + }; + + partition@ff0000 { + label = "nvram"; + reg = <0xff0000 0x10000>; + }; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +ðernet { + mtd-mac-address = <&factory 0xe000>; + mediatek,portmap = "llllw"; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "wdt", "jtag"; + ralink,function = "gpio"; + }; + }; +}; + diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 2eb7feb5bf..c1e445f84c 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -640,3 +640,13 @@ define Device/zbt-wg3526-32M kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic endef TARGET_DEVICES += zbt-wg3526-32M + +define Device/asiarf_ap7621-001 + DTS := AP7621-001 + IMAGE_SIZE := $(ralink_default_fw_size_16M) + DEVICE_TITLE := AsiaRF AP7621-001 + DEVICE_PACKAGES := \ + kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 +endef +TARGET_DEVICES += asiarf_ap7621-001 +
SoC: Mediatek MT7621A CPU: 4x 880Mhz Cache: 32 KB I-Cache and 32 KB D-Cach 256 KB L2 Cache (shared by Dual-Core) RAM: DDR3 512MB 16bits BUS FLASH: 16MB Switch: Mediatek Gigabit Switch (1 x LAN, 1 x WAN) USB: 1x 3.0 PCI: 3x Mini PCIe GPS: Quectel L70B BTN: Reset LED: - Power - Ethernet - Wifi - USB UART: UART is present as Pads with throughholes on the PCB. They are located on left side. 3.3V - RX - GND - TX / 57600-8N1 3.3V is the square pad Installation ------------ The stock image is a modified openwrt and can be overflashed via sysupgrade -F Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com> --- .../ramips/base-files/etc/board.d/02_network | 3 + target/linux/ramips/dts/AP7621-001.dts | 127 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 10 ++ 3 files changed, 140 insertions(+) create mode 100644 target/linux/ramips/dts/AP7621-001.dts