How to use out of band(OOB) interrupt only on CYW43455

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Dipak
Level 2
Level 2
First like received 10 replies posted 10 sign-ins

Hi

We are working on integrating Wi-Fi module Murata Type1 MW LBEE5HY1MW(Cypress CYW43455) with NXP based micro-controller using SDIO interface.

We want to use OOB interrupt only for our system (WL_HOST_WAKEUP ) and do not want an interrupt on SDIO Data Line 1.

Is there any way we can configure to enable an OOB interrupt and disable an interrupt on SDIO Data Line 1.

We guess that use of OOB interrupt will increase the Wi-Fi throughput. Correct me if I am wrong.

Thanks in advance. 

Regards,

Dipak Sharma

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Thanks for clarifying and providing the details. If the host is running FreeRTOS, then yes you can use OOB interrupt for WL_HOST_WAKEUP.  For this, you need to do two things-

1. You need to define the SDIO_OOB_IRQ pin in the platform.c file in the structure wifi_sdio_pins. You can have a look at the snapshot attached for the platform BCM94343WWCD2 board.

2. You need to do changes in the NVRAM file. The parameter "muxenab" has to be set to 0x10 for HW OOB. The snapshot is attached for the same platform mentioned above.

These changes are done in the WICED STUDIO IDE under the platforms folder. So, you would be required to add the specific platform files under this folder and do the required changes.

Thanks

Aditi

View solution in original post

8 Replies
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

The device specific platform data should have OOB enabled and the struct below contains the configuration parameters
struct brcmfmac_sdio_pd {
int txglomsz;
unsigned int drive_strength;
bool oob_irq_supported;
unsigned int oob_irq_nr;
unsigned long oob_irq_flags;
bool broken_sg_support;
unsigned short sd_head_align;
unsigned short sd_sgentry_align;
void (*reset)(void);
};

in brcmfmac.h where oob_irq_supported is the flag for enabled or disabled.
Also the device tree should have provision for WL_HOST_WAKE pin

Thanks

Aditi

0 Likes
Dipak
Level 2
Level 2
First like received 10 replies posted 10 sign-ins

Hi Aditi,

Thanks for the information. 

I would like to apologize for providing half information. Actually, we are running FreeRTOS on NXP's iMX RT Series MCU and not the Linux. The answer seems to be valid for Linux platform.

So, the host is running FreeRTOS and it is communicating with Murata 1MW Wi-Fi module over SDIO interface. Let me know if you have any question?

Regards,

Dipak Sharma

0 Likes
lock attach
Attachments are accessible only for community members.
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Thanks for clarifying and providing the details. If the host is running FreeRTOS, then yes you can use OOB interrupt for WL_HOST_WAKEUP.  For this, you need to do two things-

1. You need to define the SDIO_OOB_IRQ pin in the platform.c file in the structure wifi_sdio_pins. You can have a look at the snapshot attached for the platform BCM94343WWCD2 board.

2. You need to do changes in the NVRAM file. The parameter "muxenab" has to be set to 0x10 for HW OOB. The snapshot is attached for the same platform mentioned above.

These changes are done in the WICED STUDIO IDE under the platforms folder. So, you would be required to add the specific platform files under this folder and do the required changes.

Thanks

Aditi

Dipak
Level 2
Level 2
First like received 10 replies posted 10 sign-ins

Hi Aditi,

Thanks for the solution.

I  did the changes you have suggested. Now, I am getting a oob interrupt from Wi-Fi Module. But, the problem is I am also getting an interrupt from SDIO data line 1 along with from GPIO0(oob-WL_HOST_WAKEUP).

I want to disable the interrupt coming from SDIO line and want to use oob interrupt only.

Can you help me out to achieve above mentioned requirement. Feel free to ask questions if you have any.

Regards,

Dipak Sharma

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Great to know that the oob interrupt is working. For disabling the SDIO interrupt, you can disable the relevant host specific interrupt enable bit for SDIO interrupts.

Thanks

Aditi 

0 Likes
Dipak
Level 2
Level 2
First like received 10 replies posted 10 sign-ins

Hi Aditi,

Thanks for the explanation.  I just want to know that is there any provision to disable the interrupt form Wi-Fi Module itself rather than disabling at host side?

Another question, will it (using oob) increases the throughput?

Regards,

Dipak Sharma

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Yes, you can add this parameter in the NVRAM file to use oob only.

sd_oobonly=1 /* Send to OOB only */

I'll get back to you on the throughput query.

Thanks

Aditi

0 Likes
Dipak
Level 2
Level 2
First like received 10 replies posted 10 sign-ins

Hi Aditi,

Thanks for the reply.

I will perform the test after doing the changes that you have suggested. I will get back to you after testing.

Thanks for the help!!

Regards,

Dipak Sharma