Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 12:17 pm

Hi everyone.

We are having some issues to work with the WL1837MOD with the CM3 (Kernel 4.14.94-v7+, We compiled the module drivers for wlcore, wL18xx, wlcore_sdio). I connect the WL1837MOD to the SDIO on MMC1. The CM3 identify a device on MMC1 and load alone the wlcore_sdio module, but the CM3 doesn't communicates with WL1837MOD, because TI said We need the WLAN_IRQ for load the binary firmware to the device.

We create a Device Tree File for this purpose and load mmc interface with an IRQ on GPIO 12. We tested many different versions of device tree file and always compile and load correctly but on /proc/interrupts never have the IRQ on GPIO 12 for this interface. This GPIO is not used for other thing and is available. I tested with other GPIOs and we never have the IRQ enable but the overlay is loaded always correctly.

We have detection on mmc1 and the overlay is loaded correctly.

Anyone knows why is not generating the IRQ??

DMESG mmc1:

Code: Select all

[    0.823223] mmc1: new high speed SDIO card at address 0001
vcdbg log msg:

Code: Select all

001881.381: brfs: File read: /mfs/sd/overlays/wl18xx.dtbo
001895.368: Loaded overlay 'wl18xx'
001895.425: dtparam: poll_once=off
003094.141: Device tree loaded to 0x2eff9c00 (size 0x63de)

/proc/interrupts:

Code: Select all

           CPU0       CPU1       CPU2       CPU3
 16:          0          0          0          0  bcm2836-timer   0 Edge      arch_timer
 17:     720878      38734      93115     109626  bcm2836-timer   1 Edge      arch_timer
 21:          0          0          0          0  bcm2836-pmu   9 Edge      arm-pmu
 23:       8114          0          0          0  ARMCTRL-level   1 Edge      3f00b880.mailbox
 24:          5          0          0          0  ARMCTRL-level   2 Edge      VCHIQ doorbell
 46:          0          0          0          0  ARMCTRL-level  48 Edge      bcm2708_fb dma
 48:          0          0          0          0  ARMCTRL-level  50 Edge      DMA IRQ
 50:          0          0          0          0  ARMCTRL-level  52 Edge      DMA IRQ
 51:          0          0          0          0  ARMCTRL-level  53 Edge      DMA IRQ
 54:      20240          0          0          0  ARMCTRL-level  56 Edge      DMA IRQ
 55:          0          0          0          0  ARMCTRL-level  57 Edge      DMA IRQ
 56:          0          0          0          0  ARMCTRL-level  58 Edge      DMA IRQ
 59:          0          0          0          0  ARMCTRL-level  61 Edge      bcm2835-auxirq
 62:    4524333          0          0          0  ARMCTRL-level  64 Edge      dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
 84:          0          0          0          0  ARMCTRL-level  86 Edge      3f204000.spi
 86:       8447          0          0          0  ARMCTRL-level  88 Edge      mmc0
 87:          4          0          0          0  ARMCTRL-level  89 Edge      uart-pl011
 92:      16207          0          0          0  ARMCTRL-level  94 Edge      mmc1
FIQ:              usb_fiq
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:      14226      13954      68609      38334  Rescheduling interrupts
IPI3:          5          5          8          8  Function call interrupts
IPI4:          0          0          0          0  CPU stop interrupts
IPI5:     102455       3924       9834      14452  IRQ work interrupts
IPI6:          0          0          0          0  completion interrupts
Err:          0

wl18xx.dts:

Code: Select all

/dts-v1/;
/plugin/;

/* Enable SDIO for WL18xx interface via GPIOs 22-27. Includes sdhost overlay. */

/{
	compatible = "brcm,bcm2708";

	[email protected] {
		target = <&mmc>;
		sdio_mmc: __overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&sdio_pins>;
			non-removable;
			bus-width = <4>;
			brcm,overclock-50 = <0>;
			status = "okay";
			
			/* needed to avoid dtc warning */
			#address-cells = <1>;
			#size-cells = <0>;
			wlcore: [email protected]{
				compatible = "ti,wl18xx";
				reg = <2>;
				interrupt-parent = <&gpio>;
				interrupts = <12 0x2>; /* falling edge */
			};
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			sdio_pins: sdio_pins {
				brcm,pins = <22 23 24 25 26 27 12>;
				brcm,function = <7 7 7 7 7 7 0>; /* ALT3 = SD1 */
				brcm,pull = <0 2 2 2 2 2 0>;
			};
		};
	};

	__overrides__ {
		poll_once = <&sdio_mmc>,"non-removable?";
		bus_width = <&sdio_mmc>,"bus-width:0";
		sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
	};
};
fdtdump /boot/overlays/wl18xx.dtbo:

Code: Select all

/dts-v1/;
// magic:               0xd00dfeed
// totalsize:           0x5e8 (1512)
// off_dt_struct:       0x38
// off_dt_strings:      0x4e0
// off_mem_rsvmap:      0x28
// version:             17
// last_comp_version:   16
// boot_cpuid_phys:     0x0
// size_dt_strings:     0x108
// size_dt_struct:      0x4a8

/ {
    compatible = "brcm,bcm2708";
    [email protected] {
        target = <0xffffffff>;
        __overlay__ {
            pinctrl-names = "default";
            pinctrl-0 = <0x00000001>;
            non-removable;
            bus-width = <0x00000004>;
            brcm,overclock-50 = <0x00000000>;
            status = "okay";
            #address-cells = <0x00000001>;
            #size-cells = <0x00000000>;
            linux,phandle = <0x00000002>;
            phandle = <0x00000002>;
            [email protected] {
                compatible = "ti,wl18xx";
                reg = <0x00000002>;
                interrupt-parent = <0xffffffff>;
                interrupts = <0x0000000c 0x00000002>;
                linux,phandle = <0x00000003>;
                phandle = <0x00000003>;
            };
        };
    };
    [email protected] {
        target = <0xffffffff>;
        __overlay__ {
            sdio_pins {
                brcm,pins = <0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b 0x0000000c>;
                brcm,function = <0x00000007 0x00000007 0x00000007 0x00000007 0x00000007 0x00000007 0x00000000>;
                brcm,pull = <0x00000000 0x00000002 0x00000002 0x00000002 0x00000002 0x00000002 0x00000000>;
                linux,phandle = <0x00000001>;
                phandle = <0x00000001>;
            };
        };
    };
    __overrides__ {
        poll_once = [00 00 00 02 6e 6f 6e 2d 72 65 6d 6f 76 61 62 6c 65 3f 00];
        bus_width = <0x00000002 0x6275732d 0x77696474 0x683a3000>;
        sdio_overclock = <0x00000002 0x6272636d 0x2c6f7665 0x72636c6f 0x636b2d35 0x303a3000>;
    };
    __symbols__ {
        sdio_mmc = "/[email protected]/__overlay__";
        wlcore = "/[email protected]/__overlay__/[email protected]";
        sdio_pins = "/[email protected]/__overlay__/sdio_pins";
    };
    __fixups__ {
        mmc = "/[email protected]:target:0";
        gpio = "/[email protected]/__overlay__/[email protected]:interrupt-parent:0", "/[email protected]:target:0";
    };
    __local_fixups__ {
        [email protected] {
            __overlay__ {
                pinctrl-0 = <0x00000000>;
            };
        };
        __overrides__ {
            poll_once = <0x00000000>;
            bus_width = <0x00000000>;
            sdio_overclock = <0x00000000>;
        };
    };
};

Thanks in advance.

Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 3:10 pm

I think the problem is that the device framework doesn't associate your DT wlcore node with the device instance created by the MMC/SDIO subsystem.

1. The bindings document doesn't include "ti,wl18xx" in the list of recognised compatible strings - try "ti,wl1837".

2. Are you sure that the SDIO function number is 0? What does the following command report?

Code: Select all

$ ls /sys/class/mmchost/mmc1/*
$ grep . /sys/class/mmchost/mmc1/*/*/*

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 4:24 pm

Hi PhilE.

1. Thanks for your response. Now with your response adding "ti,wl1837", the module try to load the interface but the CM3 Freezes after loading module. In /proc/interrupts I can't see the interrupt of GPIO12 and I think the module freezes for waiting the interrupt.

2. I'm so sorry I don't undertand what do you want to say with "Are you sure that the SDIO function number is 0?". Here is the report of the commands:

ls /sys/class/mmc_host/mmc1/*

Code: Select all

/sys/class/mmc_host/mmc1/uevent

/sys/class/mmc_host/mmc1/device:
driver  driver_override  mmc_host  modalias  of_node  power  subsystem  uevent

/sys/class/mmc_host/mmc1/power:
autosuspend_delay_ms  control  runtime_active_time  runtime_status  runtime_suspended_time

/sys/class/mmc_host/mmc1/subsystem:
mmc0  mmc1

grep . /sys/class/mmc_host/mmc1/*/*/*

Code: Select all

grep: /sys/class/mmc_host/mmc1/device/driver/3f300000.mmc: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/driver/bind: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/driver/uevent: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/driver/unbind: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/mmc_host/mmc1: Es un directorio
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/#address-cells
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/brcm,overclock-50
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/bus-width
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/clocks
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/compatible
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/dma-names
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/dmas
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/interrupts
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/name
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/phandle
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/pinctrl-0
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/pinctrl-names
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/reg
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/status
grep: /sys/class/mmc_host/mmc1/device/of_node/[email protected]: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/power/autosuspend_delay_ms: Error de entrada/salida
/sys/class/mmc_host/mmc1/device/power/control:auto
/sys/class/mmc_host/mmc1/device/power/runtime_active_time:0
/sys/class/mmc_host/mmc1/device/power/runtime_status:unsupported
/sys/class/mmc_host/mmc1/device/power/runtime_suspended_time:0
grep: /sys/class/mmc_host/mmc1/device/subsystem/devices: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/subsystem/drivers: Es un directorio
/sys/class/mmc_host/mmc1/device/subsystem/drivers_autoprobe:1
grep: /sys/class/mmc_host/mmc1/device/subsystem/drivers_probe: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/subsystem/uevent: Permiso denegado
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/device: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/mmc0:0001: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/subsystem: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/device: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/subsystem: Es un directorio
dmesg error of module:

Code: Select all

[   43.035333] mmc-bcm2835 3f300000.mmc: card claims to support voltages below defined range
[   43.069430] mmc1: new high speed SDIO card at address 0001
[   43.581639] ------------[ cut here ]------------
[   43.581680] WARNING: CPU: 0 PID: 29 at drivers/net/wireless/ti/wlcore/sdio.c:145 wl12xx_sdio_raw_write+0xc0/0x144 [wlcore_sdio]
[   43.581685] Modules linked in: wl18xx wlcore mac80211 cfg80211 rfkill wlcore_sdio fuse evdev spidev sg uas snd_bcm2835(C) snd_pcm snd_timer snd spi_bcm2835 uio_pdrv_genirq uio fixed cdc_ether r8152 i2c_dev ip_tables x_tables ipv6
[   43.581806] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C      4.14.94-v7+ #1
[   43.581811] Hardware name: BCM2835
[   43.581829] Workqueue: events request_firmware_work_func
[   43.581862] [<8010ff14>] (unwind_backtrace) from [<8010c12c>] (show_stack+0x20/0x24)
[   43.581880] [<8010c12c>] (show_stack) from [<8078e8dc>] (dump_stack+0xc8/0x10c)
[   43.581897] [<8078e8dc>] (dump_stack) from [<8011dc68>] (__warn+0xf8/0x110)
[   43.581911] [<8011dc68>] (__warn) from [<8011dd50>] (warn_slowpath_null+0x30/0x38)
[   43.581930] [<8011dd50>] (warn_slowpath_null) from [<7f1e12e0>] (wl12xx_sdio_raw_write+0xc0/0x144 [wlcore_sdio])
[   43.582051] [<7f1e12e0>] (wl12xx_sdio_raw_write [wlcore_sdio]) from [<7f391104>] (wlcore_set_partition+0xf0/0x4d0 [wlcore])
[   43.582211] [<7f391104>] (wlcore_set_partition [wlcore]) from [<7f386bc0>] (wl12xx_set_power_on+0x8c/0x150 [wlcore])
[   43.582362] [<7f386bc0>] (wl12xx_set_power_on [wlcore]) from [<7f38b5b8>] (wlcore_nvs_cb+0x124/0xb08 [wlcore])
[   43.582450] [<7f38b5b8>] (wlcore_nvs_cb [wlcore]) from [<8055bfb0>] (request_firmware_work_func+0x4c/0x74)
[   43.582467] [<8055bfb0>] (request_firmware_work_func) from [<80137810>] (process_one_work+0x224/0x518)
[   43.582482] [<80137810>] (process_one_work) from [<801387e8>] (worker_thread+0x60/0x5f0)
[   43.582497] [<801387e8>] (worker_thread) from [<8013dff4>] (kthread+0x144/0x174)
[   43.582515] [<8013dff4>] (kthread) from [<8010806c>] (ret_from_fork+0x14/0x28)
[   43.582523] ---[ end trace 9200e8c30bb92d65 ]---
[   43.582536] wl1271_sdio mmc1:0001:2: sdio write failed (-84)
Thanks for all of your support.

Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 4:58 pm

I expected to see another directory under /sys/class/mmc_host/mmc1, specifically mmc1:0001. That string does appear in your dmesg trace, but perhaps the error has caused the sysfs entry to be removed.

Reading the mmc device tree bindings, it says:

Code: Select all

Use of Function subnodes
------------------------

On embedded systems the cards connected to a host may need additional
properties. These can be specified in subnodes to the host controller node.
The subnodes are identified by the standard 'reg' property.
Which information exactly can be specified depends on the bindings for the
SDIO function driver for the subnode, as specified by the compatible string.

Required host node properties when using function subnodes:
- #address-cells: should be one. The cell is the slot id.
- #size-cells: should be zero.

Required function subnode properties:
- reg: Must contain the SDIO function number of the function this subnode
       describes. A value of 0 denotes the memory SD function, values from
       1 to 7 denote the SDIO functions.
I think the 0001 (from "mmc1: new high speed SDIO card at address 0001") corresponds to an SDIO function number of 1. Your overlay is named as if it was for a function number of 0 ("[email protected]"), which would mean it was a memory, but the reg property (which should match) says it is for function 2. Try replacing these values with "[email protected]" and "reg = <1>;"

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 5:41 pm

If I put [email protected] and reg<1>; the driver is not loading, but if I put [email protected] and reg<2>; for example the module load, and wlcore module load FW, but the PI freezes moments after that, I don't know if are for interrupt or about the driver.

Loading driver correctly and I can view the interface wlan0 but I don't have enougth time to bring up the wlan0 because freezes the OS.

Code: Select all

[  229.759565] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
[  229.759580] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
[  229.759585] wlcore: WARNING falling back to default config
[  230.014899] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[  230.019846] wlcore: WARNING Detected unconfigured mac address in nvs, derive from fuse instead.

[  230.019852] wlcore: WARNING This default nvs file can be removed from the file system

[  230.047677] wlcore: loaded
When load the driver I have IRQ on /proc/interrupt

Code: Select all

           CPU0       CPU1       CPU2       CPU3
 16:          0          0          0          0  bcm2836-timer   0 Edge      arch_timer
 17:       1975       2147       1536       1825  bcm2836-timer   1 Edge      arch_timer
 21:          0          0          0          0  bcm2836-pmu   9 Edge      arm-pmu
 23:         78          0          0          0  ARMCTRL-level   1 Edge      3f00b880.mailbox
 24:          2          0          0          0  ARMCTRL-level   2 Edge      VCHIQ doorbell
 46:          0          0          0          0  ARMCTRL-level  48 Edge      bcm2708_fb dma
 48:          0          0          0          0  ARMCTRL-level  50 Edge      DMA IRQ
 50:          0          0          0          0  ARMCTRL-level  52 Edge      DMA IRQ
 51:          0          0          0          0  ARMCTRL-level  53 Edge      DMA IRQ
 54:       4462          0          0          0  ARMCTRL-level  56 Edge      DMA IRQ
 55:          0          0          0          0  ARMCTRL-level  57 Edge      DMA IRQ
 56:          0          0          0          0  ARMCTRL-level  58 Edge      DMA IRQ
 59:          0          0          0          0  ARMCTRL-level  61 Edge      bcm2835-auxirq
 62:      14073          0          0          0  ARMCTRL-level  64 Edge      dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
 84:          0          0          0          0  ARMCTRL-level  86 Edge      3f204000.spi
 86:        201          0          0          0  ARMCTRL-level  88 Edge      mmc0
 87:          4          0          0          0  ARMCTRL-level  89 Edge      uart-pl011
 92:       1589          0          0          0  ARMCTRL-level  94 Edge      mmc1
169:          0          0          0          0  pinctrl-bcm2835  12 Edge      wl18xx
FIQ:              usb_fiq
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:       2684       4744       5447       3810  Rescheduling interrupts
IPI3:          8          9          7          4  Function call interrupts
IPI4:          0          0          0          0  CPU stop interrupts
IPI5:         51         45         22         45  IRQ work interrupts
IPI6:          0          0          0          0  completion interrupts
Err:          0
How I can view why is freezing??.

Thanks for all of your support.

Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 5:46 pm

Please use "[email protected]" and "reg = <1>", then repeat my grep command:

Code: Select all

$ grep . /sys/class/mmchost/mmc1/mmc1:0001/*/*
If that doesn't show anything useful, do you see anything interesting under /sys/class/mmchost/mmc1/ ?

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 6:01 pm

Thanks, I configure "[email protected]" and "reg = <1>" and this is te result of your grep command:

Code: Select all

/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/class:0x00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/device:0x4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/modalias:sdio:c00v0097d4076
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/of_node: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/subsystem: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:OF_NAME=wlcore
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:OF_FULLNAME=/soc/[email protected]/[email protected]
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:OF_COMPATIBLE_0=ti,wl1837
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:OF_COMPATIBLE_N=1
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:SDIO_CLASS=00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:SDIO_ID=0097:4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:MODALIAS=sdio:c00v0097d4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/vendor:0x0097
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/class:0x00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/device:0x4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/modalias:sdio:c00v0097d4076
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/subsystem: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:SDIO_CLASS=00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:SDIO_ID=0097:4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:MODALIAS=sdio:c00v0097d4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/vendor:0x0097
grep: /sys/class/mmc_host/mmc1/mmc1:0001/power/autosuspend_delay_ms: Error de entrada/salida
/sys/class/mmc_host/mmc1/mmc1:0001/power/control:auto
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_active_time:0
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_status:unsupported
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_suspended_time:0
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/devices: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers_autoprobe:1
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers_probe: Permiso denegado
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/uevent: Permiso denegado

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Thu Jan 31, 2019 6:04 pm

Are there any relevant messages in dmesg? If you aren't sure, upload the whole output.

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 6:40 am

I don't see anything special, I attach the "dmesg" output and "vcdbg log msg" output.

Thanks.

Best Regards.
Attachments
dmesg_vcdbg_outputsi.rar
(9.49 KiB) Downloaded 24 times

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 11:05 am

Everything looks OK - it just isn't loading the driver. Try this:
1. Edit /etc/udev/udev.conf, and (after uncommenting if necessary), set udev_log="debug".
2. Reboot.
3. Run "sudo journalctl --all --this-boot --no-pager -o verbose | grep -i sdio"

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 11:44 am

Here is the log.

Code: Select all

    MESSAGE=mmc1: new high speed SDIO card at address 0001
    MESSAGE=seq 941 queued, 'add' 'sdio'
    MESSAGE=seq 942 queued, 'add' 'sdio'
    MESSAGE=created db file '/run/udev/data/+sdio:mmc1:0001:2' for '/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:2'
    MESSAGE=Execute 'load' 'sdio:c00v0097d4076'
    MESSAGE=created db file '/run/udev/data/+sdio:mmc1:0001:1' for '/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
    MESSAGE=Execute 'load' 'sdio:c00v0097d4076'
    MESSAGE=Inserted 'wlcore_sdio'
    MESSAGE=Inserted 'wlcore_sdio'

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 11:46 am

That looks like a driver is loaded - is it? What does lsmod show?

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 12:06 pm

Yes, but only load the module of wlcore_sdio and is not loading the "wlan0" interface

Code: Select all

Module                  Size  Used by
fuse                  110592  3
spidev                 16384  0
sg                     28672  0
evdev                  24576  2
cdc_ether              16384  0
r8152                  57344  0
snd_bcm2835            32768  1
snd_pcm                98304  1 snd_bcm2835
snd_timer              32768  1 snd_pcm
snd                    69632  5 snd_timer,snd_bcm2835,snd_pcm
wlcore_sdio            16384  0
spi_bcm2835            16384  0
fixed                  16384  0
uio_pdrv_genirq        16384  0
uio                    20480  1 uio_pdrv_genirq
uas                    20480  0
i2c_dev                16384  0
ip_tables              24576  0
x_tables               32768  1 ip_tables
ipv6                  425984  26

When change to [email protected] and reg<2>; on DTS starts all the modules that need to work (wl18xx, wlcore, mac80211, cfg80211). And with the commando "ip a" shows a wlan0

Code: Select all

Module                  Size  Used by
wl18xx                102400  0
wlcore                200704  1 wl18xx
mac80211              659456  2 wl18xx,wlcore
cfg80211              569344  3 wl18xx,wlcore,mac80211
rfkill                 28672  2 cfg80211
fuse                  110592  3
spidev                 16384  0
sg                     28672  0
evdev                  24576  2
cdc_ether              16384  0
r8152                  57344  0
snd_bcm2835            32768  1
snd_pcm                98304  1 snd_bcm2835
snd_timer              32768  1 snd_pcm
snd                    69632  5 snd_timer,snd_bcm2835,snd_pcm
wlcore_sdio            16384  0
spi_bcm2835            16384  0
fixed                  16384  0
uio_pdrv_genirq        16384  0
uio                    20480  1 uio_pdrv_genirq
uas                    20480  0
i2c_dev                16384  0
ip_tables              24576  0
x_tables               32768  1 ip_tables
ipv6                  425984  26

Command "ip a":

Code: Select all

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:e0:4c:69:4c:67 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.88/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2e0:4cff:fe69:4c67/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 50:33:8b:6e:4a:9f brd ff:ff:ff:ff:ff:ff
Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 12:35 pm

Hmm - looking at the driver, it rejects anything other than function 2 - the "wlan function" - so you'd better leave it at that (but rename the node to "[email protected]" to match, just for consistency).

I think you should locate copies of the firmware files it is looking for, and put them in "/lib/firmware/ti-connectivity/*".

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 4:02 pm

Hi PhilE.

With "[email protected]" works. Now I am trying tu put a option "vmmc-supply" to change the state of module with driver. I put the standard configuration that I see on other DTS but the GPIO designed is not changing.

Code: Select all

/dts-v1/;
/plugin/;

/* Enable SDIO for WL18xx interface via GPIOs 22-27. Includes sdhost overlay. */

/{
	compatible = "brcm,bcm2708";

	[email protected] {
		target = <&mmc>;
		sdio_mmc: __overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&sdio_pins>;
			non-removable;
			bus-width = <4>;
			brcm,overclock-50 = <0>;
			status = "okay";
			
			vmmc-supply = <&wlan_en_reg>;
			cap-power-off-card;
			
			/* needed to avoid dtc warning */
			#address-cells = <1>;
			#size-cells = <0>;
				wlcore: [email protected]{
					compatible = "ti,wl1837";
					reg = <2>;
					interrupt-parent = <&gpio>;
					interrupts = <12 2>; /* falling edge */
				};
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			sdio_pins: sdio_pins {
				brcm,pins = <22 23 24 25 26 27 12>;
				brcm,function = <7 7 7 7 7 7 0>; /* ALT3 = SD1 */
				brcm,pull = <0 2 2 2 2 2 0>;
			};
		};
	};

	__overrides__ {
		poll_once = <&sdio_mmc>,"non-removable?";
		bus_width = <&sdio_mmc>,"bus-width:0";
		sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
	};
	
	wlan_en_reg: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		/* WLAN_EN GPIO Test */
		gpio = <&gpio 28 0>;

		/* WLAN card specific delay */
		startup-delay-us = <70000>;
		enable-active-high;
	};
};
Need I to put wlan_en_reg inside "fragment"??.

Here is the "grep . /sys/class/mmc_host/mmc1/*/*/*":

Code: Select all

grep: /sys/class/mmc_host/mmc1/device/driver/3f300000.mmc: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/driver/bind: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/driver/uevent: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/driver/unbind: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/mmc_host/mmc1: Es un directorio
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/#address-cells
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/brcm,overclock-50
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/bus-width
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/clocks
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/compatible
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/dma-names
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/dmas
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/interrupts
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/name
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/phandle
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/pinctrl-0
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/pinctrl-names
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/reg
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/status
Coincidencia en el fichero binario /sys/class/mmc_host/mmc1/device/of_node/vmmc-supply
grep: /sys/class/mmc_host/mmc1/device/of_node/[email protected]: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/power/autosuspend_delay_ms: Error de entrada/salida
/sys/class/mmc_host/mmc1/device/power/control:auto
/sys/class/mmc_host/mmc1/device/power/runtime_active_time:0
/sys/class/mmc_host/mmc1/device/power/runtime_status:unsupported
/sys/class/mmc_host/mmc1/device/power/runtime_suspended_time:0
grep: /sys/class/mmc_host/mmc1/device/subsystem/devices: Es un directorio
grep: /sys/class/mmc_host/mmc1/device/subsystem/drivers: Es un directorio
/sys/class/mmc_host/mmc1/device/subsystem/drivers_autoprobe:1
grep: /sys/class/mmc_host/mmc1/device/subsystem/drivers_probe: Permiso denegado
grep: /sys/class/mmc_host/mmc1/device/subsystem/uevent: Permiso denegado
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/class:0x00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/device:0x4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/modalias:sdio:c00v0097d4076
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/subsystem: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:SDIO_CLASS=00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:SDIO_ID=0097:4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/uevent:MODALIAS=sdio:c00v0097d4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/vendor:0x0097
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/class:0x00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/device:0x4076
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/driver: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/modalias:sdio:c00v0097d4076
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/of_node: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/subsystem: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:DRIVER=wl1271_sdio
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:OF_NAME=wlcore
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:OF_FULLNAME=/soc/[email protected]/[email protected]
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:OF_COMPATIBLE_0=ti,wl1837
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:OF_COMPATIBLE_N=1
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:SDIO_CLASS=00
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:SDIO_ID=0097:4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/uevent:MODALIAS=sdio:c00v0097d4076
/sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/vendor:0x0097
grep: /sys/class/mmc_host/mmc1/mmc1:0001/mmc1:0001:2/wl18xx.0.auto: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/power/autosuspend_delay_ms: Error de entrada/salida
/sys/class/mmc_host/mmc1/mmc1:0001/power/control:auto
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_active_time:67610
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_status:resuming
/sys/class/mmc_host/mmc1/mmc1:0001/power/runtime_suspended_time:296710
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/devices: Es un directorio
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers: Es un directorio
/sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers_autoprobe:1
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/drivers_probe: Permiso denegado
grep: /sys/class/mmc_host/mmc1/mmc1:0001/subsystem/uevent: Permiso denegado
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/device: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/mmc0:0001: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc0/subsystem: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/device: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/mmc1:0001: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/power: Es un directorio
grep: /sys/class/mmc_host/mmc1/subsystem/mmc1/subsystem: Es un directorio
Thanks for your help again.

Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 4:11 pm

Put your fixedregulator0 node in a new fragment with "target = <&soc>;".

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 4:43 pm

I put the wlan_en_reg inside fragment with target to &soc but the GPIO 28 is not toggling when down or up the interface. This is my DTS now:

Code: Select all

/dts-v1/;
/plugin/;

/* Enable SDIO for WL18xx interface via GPIOs 22-27. Includes sdhost overlay. */

/{
	compatible = "brcm,bcm2708";

	[email protected] {
		target = <&mmc>;
		sdio_mmc: __overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&sdio_pins>;
			non-removable;
			bus-width = <4>;
			brcm,overclock-50 = <0>;
			status = "okay";
			
			vmmc-supply = <&wlan_en_reg>;
			cap-power-off-card;
			
			/* needed to avoid dtc warning */
			#address-cells = <1>;
			#size-cells = <0>;
				wlcore: [email protected]{
					compatible = "ti,wl1837";
					reg = <2>;
					interrupt-parent = <&gpio>;
					interrupts = <12 2>; /* falling edge */
				};
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			sdio_pins: sdio_pins {
				brcm,pins = <22 23 24 25 26 27 12>;
				brcm,function = <7 7 7 7 7 7 0>; /* ALT3 = SD1 */
				brcm,pull = <0 2 2 2 2 2 0>;
			};
		};
	};
	
	[email protected] {
		target = <&soc>;
		__overlay__ {
			wlan_en_reg: fixedregulator0 {
				compatible = "regulator-fixed";
				regulator-name = "wlan-en-regulator";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				/* WLAN_EN GPIO Test */
				gpio = <&gpio 28 0>;

				/* WLAN card specific delay */
				startup-delay-us = <70000>;
				enable-active-high;
			};
		};
	};
	

	__overrides__ {
		poll_once = <&sdio_mmc>,"non-removable?";
		bus_width = <&sdio_mmc>,"bus-width:0";
		sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
	};

};

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 5:13 pm

It looks like the mmc framework doesn't manipulate vmmc - that seems to be left to individual drivers. The Raspberry Pi bcm2835 SD/MMC drivers don't (although the upstream mmc driver does).

You might be able to use the vqmmc regulator instead, which does seem to be managed by the mmc framework.

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Fri Feb 01, 2019 5:52 pm

The vqmmc-supply is not toggling the GPIO 28 either. Can I modify other DTS, because the driver needs to manage this WLAN_EN to enable and disabled and restart the WL1837MOD.

Do you know what can I do??.

Thank you so much for all of your support.

My actual DTS:

Code: Select all

	/dts-v1/;
/plugin/;

/* Enable SDIO for WL18xx interface via GPIOs 22-27. Includes sdhost overlay. */

/{
	compatible = "brcm,bcm2708";

	[email protected] {
		target = <&mmc>;
		sdio_mmc: __overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&sdio_pins>;
			non-removable;
			bus-width = <4>;
			brcm,overclock-50 = <0>;
			status = "okay";
			
			vqmmc-supply = <&wlan_en_reg>;
			cap-power-off-card;
			
			/* needed to avoid dtc warning */
			#address-cells = <1>;
			#size-cells = <0>;
				wlcore: [email protected]{
					compatible = "ti,wl1837";
					reg = <2>;
					interrupt-parent = <&gpio>;
					interrupts = <12 2>; /* falling edge */
				};
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			sdio_pins: sdio_pins {
				brcm,pins = <22 23 24 25 26 27 12>;
				brcm,function = <7 7 7 7 7 7 0>; /* ALT3 = SD1 */
				brcm,pull = <0 2 2 2 2 2 0>;
			};
		};
	};
	
	[email protected] {
		target = <&soc>;
		__overlay__ {
			wlan_en_reg: fixedregulator0 {
				compatible = "regulator-fixed";
				regulator-name = "wlan-en-regulator";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				/* WLAN_EN GPIO Test */
				gpio = <&gpio 28 0>;

				/* WLAN card specific delay */
				startup-delay-us = <70000>;
				enable-active-high;
			};
		};
	};
	

	__overrides__ {
		poll_once = <&sdio_mmc>,"non-removable?";
		bus_width = <&sdio_mmc>,"bus-width:0";
		sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
	};

};
Best Regards.

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Mon Feb 04, 2019 11:35 am

Hi PhilE.

Where I need to modify to have the functionality of vmmc-supply for the mmc??. I need to modify dt-blob.bin??, or I need to recompile something on the kernel directly??.

Thanks for your support.

Best Regards.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2072
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Mon Feb 04, 2019 11:44 am

I can't undertake bespoke investigations to support your development. Perhaps a simpler solution - certainly something worth trying - is to change the kernel config to enable CONFIG_MMC_SDHCI_IPROC instead of CONFIG_MMC_BCM2835_MMC. That driver is used by the upstream kernel - the compatible string is "brcm.bcm2835-sdhci".

Redhunt
Posts: 13
Joined: Thu Jan 24, 2019 7:22 am

Re: Error creating a IRQ on MMC1 for WL1837MOD.

Mon Feb 04, 2019 11:55 am

Hi.

Thanks for your time, I will test in a few days.

Best Regards.

Return to “Device Tree”