Enabling interrupts for SDIO interface on Hikey960


I am using Wi-Fi peripheral over ultra high speed SDIO slot provided on Hikey960 board.
From the performance, interrupts seem to be disabled. How do I enable it?

Method I tried:

  1. Download the kernel and utilities and build freshly on my own.
    Link: https://www.96boards.org/documentation/consumer/hikey/hikey620/build/linux-kernel.md.html
  2. Edited the file arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
    &dwmmc1 {
    bus-width = <0x4>;
  •    cap-sdio-irq;             <== Add this line
  1. Copied the kernel deb and dtb file to rootfs and selected from GRUB boot selection.
    devicetree /boot/hi3660-hikey960.dtb

I am still not seeing the interrupts are enabled. Am I missing something here? Any help would be appreciated.

Thanks, Achyut

Hello everyone,
Just to document, the steps used above worked for me.
Setting the device tree in the GRUB menu needs to be done every time I boot the board. I am trying to figure out if there is any permanent solution for this. Open to any suggestions/pointers.


One of ways is to create custom grub menuentry as mentioned here:

Other way could be to rebuild edk2 with updated device tree.

Thanks Sumit for the response.
I followed the instructions from here and added a custom device tree entry in /boot/grub/grub.cfg and that worked fine for me. Now I am working on increasing the SDIO frequency beyond 120MHz. I am not sure if Hikey has capability to go up until 204MHz. Need to check further

Debug ios are set as below:
clock: 150000000 Hz
actual clock: 120000000 Hz
vdd: 18 (3.0 ~ 3.1 V)
bus mode: 2 (push-pull)
chip select: 0 (don’t care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 6 (sd uhs SDR104)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)

@Mani really very good post on compiling linux.

Maybe you could also add a line to set the custom device tree by default.