Hi all.
I am studying the possibility of using HALOW in the form of a FG4108E-S module on an MM6108 chip with an MT7628 processor running OpenWRT
I assembled everything as written on github for a project with SDI, then replaced it with my processor and compiled it again. All DTS and DTSI have been adjusted for SDI. The log says the following:
[ 14.014458] random: ubusd: uninitialized urandom read (4 bytes read)
[ 14.045464] random: ubus: uninitialized urandom read (4 bytes read)
[ 14.470586] morsechipreset: unable to find sdio device/driver to unbind; proceeding anyway
[ 15.966611] kmodloader: loading kernel modules from /etc/modules.d/*
[ 16.584458] Loading modules backported from Linux version v6.1.110-0-g5f55cad62cc9d
[ 16.599767] Backport generated by backports.git v6.1.110-1-0-g965f73fc
[ 17.209305] mt76_wmac 10300000.wmac: ASIC revision: 76280001
[ 17.256205] mt76_wmac 10300000.wmac: Direct firmware load for mt7603e_txpat.bin failed with error -2
[ 17.274408] mt76_wmac 10300000.wmac: Falling back to sysfs fallback for: mt7603e_txpat.bin
[ 17.385362] mt76_wmac 10300000.wmac: No TX Power Adjust file (mt7603e_txpat.bin) found.
[ 17.449812] mt76_wmac 10300000.wmac: Firmware Version: 20151201
[ 17.461659] mt76_wmac 10300000.wmac: Build Time: 20151201183641
[ 17.555194] mt76_wmac 10300000.wmac: firmware init done
[ 17.751069] mt76_wmac 10300000.wmac: registering led ‘mt76-phy0’
[ 17.842145] tun: Universal TUN/TAP device driver, 1.6
[ 17.958941] i2c_dev: i2c /dev entries driver
[ 18.023671] i2c-mt7621 10000900.i2c: clock 100 kHz
[ 18.207482] GACT probability on
[ 18.236823] Mirror/redirect action on
[ 18.299889] u32 classifier
[ 18.305368] input device check on
[ 18.312612] Actions configured
[ 18.515613] mtk-msdc 10130000.mmc: no support for card’s volts
[ 18.527232] mmc0: error -22 whilst initialising SDIO card
[ 18.668763] urngd: v1.0.2 started.
[ 18.860987] usbcore: registered new interface driver cdc_acm
[ 18.872312] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 19.015248] Morse Micro Dot11ah driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 19.216314] morse micro driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 19.344352] rtc-pcf8563 0-0051: pcf8563_write_block_data: err=-6 addr=0e, data=03
[ 19.359307] rtc-pcf8563 0-0051: pcf8563_probe: write error
[ 19.370197] rtc-pcf8563: probe of 0-0051 failed with error -5
[ 19.619242] xt_time: kernel timezone is -0000
[ 19.715403] batman_adv: B.A.T.M.A.N. advanced 2023.1-openwrt-7 (compatibility version 15) loaded
[ 19.773167] usbcore: registered new interface driver cdc_ether
[ 20.207948] mtk-msdc 10130000.mmc: no support for card’s volts
[ 20.219626] mmc0: error -22 whilst initialising SDIO card
[ 20.309654] PPP generic driver version 2.4.2
[ 20.351831] NET: Registered PF_PPPOX protocol family
[ 20.467781] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 21.905590] mtk-msdc 10130000.mmc: no support for card’s volts
[ 21.917218] mmc0: error -22 whilst initialising SDIO card
[ 23.760989] mtk-msdc 10130000.mmc: no support for card’s volts
[ 23.772629] mmc0: error -22 whilst initialising SDIO card
[ 23.976372] random: crng init done
On file mt7628an.dtsi
/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mediatek,mt7628an-soc";
aliases {
serial0 = &uartlite;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "mips,mips24KEc";
reg = <0>;
};
};
chosen {
bootargs = "console=ttyS0,57600";
};
cpuintc: cpuintc {
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-controller;
compatible = "mti,cpu-interrupt-controller";
};
palmbus: palmbus@10000000 {
compatible = "palmbus";
reg = <0x10000000 0x200000>;
ranges = <0x0 0x10000000 0x1FFFFF>;
#address-cells = <1>;
#size-cells = <1>;
sysc: sysc@0 {
compatible = "ralink,mt7620a-sysc", "syscon";
reg = <0x0 0x100>;
};
watchdog: watchdog@100 {
compatible = "ralink,mt7628an-wdt", "mediatek,mt7621-wdt";
reg = <0x100 0x30>;
resets = <&rstctrl 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
interrupts = <24>;
};
intc: intc@200 {
compatible = "ralink,mt7628an-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
resets = <&rstctrl 9>;
reset-names = "intc";
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&cpuintc>;
interrupts = <2>;
ralink,intc-registers = <0x9c 0xa0
0x6c 0xa4
0x80 0x78>;
};
memc: memc@300 {
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
resets = <&rstctrl 10>;
reset-names = "mc";
interrupt-parent = <&intc>;
interrupts = <3>;
};
gpio: gpio@600 {
compatible = "mediatek,mt7621-gpio";
reg = <0x600 0x100>;
interrupt-parent = <&intc>;
interrupts = <6>;
#interrupt-cells = <2>;
interrupt-controller;
gpio-controller;
#gpio-cells = <2>;
};
i2c: i2c@900 {
compatible = "mediatek,mt7621-i2c";
reg = <0x900 0x100>;
resets = <&rstctrl 16>;
reset-names = "i2c";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
pinctrl-names = "default";
pinctrl-0 = <&i2c_pins>;
};
i2s: i2s@a00 {
compatible = "mediatek,mt7628-i2s";
reg = <0xa00 0x100>;
resets = <&rstctrl 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
interrupts = <10>;
txdma-req = <2>;
rxdma-req = <3>;
dmas = <&gdma 4>,
<&gdma 6>;
dma-names = "tx", "rx";
status = "disabled";
};
spi0: spi@b00 {
compatible = "ralink,mt7621-spi";
reg = <0xb00 0x100>;
resets = <&rstctrl 18>;
reset-names = "spi";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&spi_pins>;
status = "disabled";
};
uartlite: uartlite@c00 {
compatible = "ns16550a";
reg = <0xc00 0x100>;
reg-shift = <2>;
reg-io-width = <4>;
no-loopback-test;
clock-frequency = <40000000>;
resets = <&rstctrl 12>;
reset-names = "uartl";
interrupt-parent = <&intc>;
interrupts = <20>;
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
};
uart1: uart1@d00 {
compatible = "ns16550a";
reg = <0xd00 0x100>;
reg-shift = <2>;
reg-io-width = <4>;
no-loopback-test;
clock-frequency = <40000000>;
resets = <&rstctrl 19>;
reset-names = "uart1";
interrupt-parent = <&intc>;
interrupts = <21>;
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
status = "disabled";
};
uart2: uart2@e00 {
compatible = "ns16550a";
reg = <0xe00 0x100>;
reg-shift = <2>;
reg-io-width = <4>;
no-loopback-test;
clock-frequency = <40000000>;
resets = <&rstctrl 20>;
reset-names = "uart2";
interrupt-parent = <&intc>;
interrupts = <22>;
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
status = "disabled";
};
pwm: pwm@5000 {
compatible = "mediatek,mt7628-pwm";
reg = <0x5000 0x1000>;
#pwm-cells = <2>;
resets = <&rstctrl 31>;
reset-names = "pwm";
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
status = "disabled";
};
pcm: pcm@2000 {
compatible = "ralink,mt7620a-pcm";
reg = <0x2000 0x800>;
resets = <&rstctrl 11>;
reset-names = "pcm";
interrupt-parent = <&intc>;
interrupts = <4>;
status = "disabled";
};
gdma: gdma@2800 {
compatible = "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
resets = <&rstctrl 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
interrupts = <7>;
#dma-cells = <1>;
#dma-channels = <16>;
#dma-requests = <16>;
status = "disabled";
};
};
pinctrl: pinctrl {
compatible = "ralink,rt2880-pinmux";
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
state_default: pinctrl0 {
};
spi_pins: spi_pins {
spi_pins {
groups = "spi";
function = "spi";
};
};
spi_cs1_pins: spi_cs1 {
spi_cs1 {
groups = "spi cs1";
function = "spi cs1";
};
};
i2c_pins: i2c_pins {
i2c_pins {
groups = "i2c";
function = "i2c";
};
};
i2s_pins: i2s {
i2s {
groups = "i2s";
function = "i2s";
};
};
uart0_pins: uartlite {
uartlite {
groups = "uart0";
function = "uart0";
};
};
uart1_pins: uart1 {
uart1 {
groups = "uart1";
function = "uart1";
};
};
uart2_pins: uart2 {
uart2 {
groups = "uart2";
function = "uart2";
};
};
sdxc_pins: sdxc {
sdxc {
groups = "sdmode";
function = "sdxc";
};
};
pwm0_pins: pwm0 {
pwm0 {
groups = "pwm0";
function = "pwm0";
};
};
pwm1_pins: pwm1 {
pwm1 {
groups = "pwm1";
function = "pwm1";
};
};
pcm_i2s_pins: pcm_i2s {
pcm_i2s {
groups = "i2s";
function = "pcm";
};
};
refclk_pins: refclk {
refclk {
groups = "refclk";
function = "refclk";
};
};
};
rstctrl: rstctrl {
compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
#reset-cells = <1>;
};
clkctrl: clkctrl {
compatible = "ralink,rt2880-clock";
#clock-cells = <1>;
};
usbphy: usbphy@10120000 {
compatible = "mediatek,mt7628-usbphy", "mediatek,mt7620-usbphy";
reg = <0x10120000 0x1000>;
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
resets = <&rstctrl 22 &rstctrl 25>;
reset-names = "host", "device";
clocks = <&clkctrl 22 &clkctrl 25>;
clock-names = "host", "device";
};
mmc_clock: mmc_clock@0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <48000000>;
};
mmc_fixed_3v3: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "mmc_power";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
regulator-always-on;
};
mmc_fixed_1v8_io: fixedregulator@1 {
compatible = "regulator-fixed";
regulator-name = "mmc_io";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
enable-active-high;
regulator-always-on;
};
sdhci: mmc@10130000 {
compatible = "mediatek,mt7620-mmc";
reg = <0x10130000 0x4000>;
bus-width = <4>;
max-frequency = <24000000>;
pinctrl-names = "default", "state_uhs";
pinctrl-0 = <&sdxc_pins>;
pinctrl-1 = <&sdxc_pins>;
clocks = <&mmc_clock>, <&mmc_clock>;
clock-names = "source", "hclk";
interrupt-parent = <&intc>;
interrupts = <14>;
status = "disabled";
};
ehci: ehci@101c0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "generic-ehci";
reg = <0x101c0000 0x1000>;
phys = <&usbphy>;
phy-names = "usb";
interrupt-parent = <&intc>;
interrupts = <18>;
ehci_port1: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
ohci: ohci@101c1000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "generic-ohci";
reg = <0x101c1000 0x1000>;
phys = <&usbphy>;
phy-names = "usb";
interrupt-parent = <&intc>;
interrupts = <18>;
ohci_port1: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
ethernet: ethernet@10100000 {
compatible = "ralink,rt5350-eth";
reg = <0x10100000 0x10000>;
interrupt-parent = <&cpuintc>;
interrupts = <5>;
resets = <&rstctrl 21>, <&rstctrl 23>;
reset-names = "fe", "esw";
mediatek,switch = <&esw>;
};
esw: esw@10110000 {
compatible = "mediatek,mt7628-esw", "ralink,rt3050-esw";
reg = <0x10110000 0x8000>;
resets = <&rstctrl 24>;
reset-names = "ephy";
interrupt-parent = <&intc>;
interrupts = <17>;
};
pcie: pcie@10140000 {
compatible = "mediatek,mt7620-pci";
reg = <0x10140000 0x100
0x10142000 0x100>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-parent = <&cpuintc>;
interrupts = <4>;
resets = <&rstctrl 26 &rstctrl 27>;
reset-names = "pcie0", "pcie1";
clocks = <&clkctrl 26 &clkctrl 27>;
clock-names = "pcie0", "pcie1";
status = "disabled";
device_type = "pci";
bus-range = <0 255>;
ranges = <
0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
>;
pcie0: pcie@0,0 {
reg = <0x0000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
ranges;
};
};
wmac: wmac@10300000 {
compatible = "mediatek,mt7628-wmac";
reg = <0x10300000 0x100000>;
interrupt-parent = <&cpuintc>;
interrupts = <6>;
status = "disabled";
};
};
On to file mt7628an_morse.dts
#include “mt7628an.dtsi”
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = “morse,ekh09v1”, “mediatek,mt7628an-soc”;
model = “MorseMicro EKH09v1”;
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* 1 MB reserved for ramoops/pstore */
ramoops@7EFFFFF {
compatible = "ramoops";
reg = <0x7EFFFFF 0x100000>;
record-size = <0x4000>;
console-size = <0x4000>;
};
};
aliases {
led-boot = &led_status;
led-failsafe = &led_status;
led-running = &led_status;
led-upgrade = &led_status;
label-mac-device = &wmac;
};
leds {
compatible = "gpio-leds";
led_status: status {
label = "fuchsia:status";
gpios = <&gpio 44 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
morse-reset {
label = "morse-reset";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
};
};
gpio-export {
compatible = "gpio-export";
#size-cells = <0>;
gpio2 {
// J4 header attached to I2S_WS gpio2.
// High value means STA, low AP.
gpio-export,name = "morse-mode-switch";
gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
};
};
chosen {
bootargs = "console=ttyS0,57600";
};
};
&spi0 {
status = “okay”;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
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>;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
firmware: partition@50000 {
compatible = "denx,uimage";
label = "firmware";
/* reg property is set based on flash size in DTS files */
};
};
};
mm6108_spi@1 {
compatible = "morse,mm610x-spi";
reg = <1>;
spi-max-frequency = <10000000>;
interrupt-parent = <&gpio>;
interrupts = <11>;
status = "okay";
spi-mode = <0>;
/*
spi-max-frequency = <26000000>;
spi-mode = <0>; // CPOL=0, CPHA=0, CS active low
0x01 SPI_CPHA
0x02 SPI_CPOL
0x04 SPI_CS_HIGH
0x08 SPI_LSB_FIRST
0x10 SPI_3WIRE
0x20 SPI_LOOP
0x40 SPI_NO_CS
0x80 SPI_READY
reset-gpios = <&gpio XX GPIO_ACTIVE_LOW>;
power-gpios = <&gpio XX GPIO_ACTIVE_HIGH>;
vdd-supply = <&vcc_3v3>;
wpan@0 {
compatible = "fn-link,fg4108e-s-netdev";
reg = <0>;
};
-spi-cpol;
-spi-cpha;
# dmesg |grep morse [ 14.296745] morsechipreset: unable to find sdio device/driver to unbind; proceeding anyway
[ 18.924423] morse micro driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 18.938938] morse_spi spi0.1: setup: unsupported mode bits 4
[ 18.950219] morse_spi spi0.1: can't change chip-select polarity
[ 18.961975] morse_spi spi0.1: morse_spi_probe: failed to init SPI with CMD63 (ret:-22)
[ 18.977704] morse_spi_probe failed. The driver has not been loaded!
[ 18.990130] morse_spi: probe of spi0.1 failed with error -22
[ 18.723121] Morse Micro Dot11ah driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 18.964492] morse micro driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 18.979005] morse_spi spi0.1: setup: unsupported mode bits 4
[ 18.990288] morse_spi spi0.1: can't change chip-select polarity
[ 19.002032] morse_spi spi0.1: morse_spi_probe: failed to init SPI with CMD63 (ret:-22)
[ 19.017757] morse_spi_probe failed. The driver has not been loaded!
[ 19.030183] morse_spi: probe of spi0.1 failed with error -22
+spi-cpha;
-spi-cpol;
# dmesg | grep -i spi
[ 0.995445] spi spi0.1: setup: unsupported mode bits 1
[ 1.005751] spi-mt7621 10000b00.spi: can't setup spi0.1, status -22
[ 1.018183] spi_master spi0: spi_device register error /palmbus@10000000/spi@b00/mm6108_spi@1
[ 1.035108] spi_master spi0: Failed to create SPI device for /palmbus@10000000/spi@b00/mm6108_spi@1
-spi-cpha;
+spi-cpol;
# dmesg |grep spi
[ 0.995800] spi spi0.1: setup: unsupported mode bits 2
[ 1.006106] spi-mt7621 10000b00.spi: can't setup spi0.1, status -22
[ 1.018538] spi_master spi0: spi_device register error /palmbus@10000000/spi@b00/mm6108_spi@1
[ 1.035463] spi_master spi0: Failed to create SPI device for /palmbus@10000000/spi@b00/mm6108_spi@1
+spi-cpha;
+spi-cpol;
# dmesg |grep spi
[ 0.995593] spi spi0.1: setup: unsupported mode bits 3
[ 1.005900] spi-mt7621 10000b00.spi: can't setup spi0.1, status -22
[ 1.018330] spi_master spi0: spi_device register error /palmbus@10000000/spi@b00/mm6108_spi@1
[ 1.035255] spi_master spi0: Failed to create SPI device for /palmbus@10000000/spi@b00/mm6108_spi@1
*/
};
};
&pinctrl {
spis_pins: spis{
spis{
groups = “spis”;
function = “pwm_uart2”;
};
};
};
&state_default {
gpio {
groups = “wled_an”, “refclk”, “wdt”, “p2led_an”, “p3led_an”, “p4led_an”;
function = “gpio”;
};
};
&wmac {
status = “okay”;
mediatek,mtd-eeprom = <&factory 0x0>;
};
ðernet {
status = “okay”;
nvmem-cells = <&macaddr_factory_28>;
nvmem-cell-names = “mac-address”;
};
&esw {
status = “okay”;
mediatek,portmap = <0x5>;
mediatek,portdisable = <0x3a>;
};
&i2c {
status = “okay”;
rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};
/*
pinctrl-names = "default";
pinctrl-0 = <&i2c_pins>;
clock-frequency = <100000>;
*/
};
&i2s {
status = “okay”;
};
&gdma {
status = “okay”;
};
&gpio {
/* These are taken from the ‘Normal Mode’ of the GPIO pin shares,
* except that the GPIOs connect to the Morse chip are labelled
* (MM_RESET/MM_BUSY/MM_WAKE).
/
gpio-line-names =
“I2S_SDI”, “I2S_SDO”, “I2S_WS”, “I2S_CLK”, “I2C_SCLK”, “I2C_SD”,
“SPI_CS1”, “SPI_CLK”, “SPI_MOSI”, “SPI_MISO”, “SPI_CS0”,
“”, “UART_TXD0”, “UART_RXD0”,
“MDI_TP_P1”, “MDI_TN_P1”, “MDI_RP_P1”, “MDI_RN_P1”,
“MDI_RP_P2”, “MDI_RN_P2”, “MDI_TP_P2”, “MDI_TN_P2”,
“MDI_TP_P3”, “MDI_TN_P3”, “MDI_RP_P3”, “MDI_RN_P3”, “MDI_RP_P4”, “MDI_RN_P4”, “MDI_TP_P4”, “MDI_TN_P4”,
“”, “”, “”, “”, “”, “”,
“PERST_N”, “REF_CLKO”, “WDT_RST_N”,
“MM_BUSY”, “MM_RESET”, “MM_WAKE”,
“EPHY_LED1_N_JTDI”, “EPHY_LED0_N_JTDO”,
“WLED_N”, “UART_TXD1”, “UART_RXD1”,
/ GPIO47 → GPIO63 - unused, but need to be specified to avoid kernel complaints /
“”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”,
/ GPIO64 → GPIO95 - unused, but need to be specified to avoid kernel complaints */
“”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “”
;
status = "okay";
};
&pwm {
status = “okay”;
};
&uart1 {
status = “okay”;
bt_fg6124: bt-fg6124 {
compatible = "fn-link,fg6124nrxx", "realtek,rs624mf";
status = "okay";
reg = <0>;
current-speed = <921600>;
reset-gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
/* hw-flow-control; */
};
};
&uart2 {
pinctrl-0 = <&spis_pins>;
status = “okay”;
};
&factory {
compatible = “nvmem-cells”;
#address-cells = <1>;
#size-cells = <1>;
macaddr_factory_28: macaddr@28 {
reg = <0x28 0x6>;
};
};
&sdhci {
status = “okay”;
mediatek,cd-poll;
cap-sd-highspeed;
cap-mmc-highspeed;
vmmc-supply = <&mmc_fixed_3v3>;
vqmmc-supply = <&mmc_fixed_3v3>;
cap-sdio-irq;
non-removable;
disable-wp;
no-1-8-v;
mm6108_sdio: mm6108_sdio@0 {
compatible = "morse,mm610x";
reset-gpios = <&gpio 40 0>;
power-gpios = <&gpio 41 0>,<&gpio 42 0>;
status = "okay";
reg = <2>;
bus-width = <4>;
};
};
#include “mt7628an_morse_ekh03_rgbled.dtsi”
&firmware {
reg = <0x50000 0xfb0000>;
};
&uart2_pins {
uart2 {
groups = “uart2”;
function = “gpio”;
};
};
&pwm0_pins {
pwm0 {
groups = “pwm0”;
function = “gpio”;
};
};
&pwm1_pins {
pwm1 {
groups = “pwm1”;
function = “gpio”;
};
};
How to teach the FG4108E-S module to work with MT7628.
P.S. I’m new, I can’t attach the file to the message yet.
Alex.
MM6108 (module FG4108E-S) on MT7628 SDI dont work.zip (125.5 KB)