Re: omap_hsmmc: sdio: issue with generic wakeup IRQ handling

Grygorii Strashko
2016-02-25T11:47:17Z

On 02/25/2016 01:18 PM, Vishal Thanki wrote:

[...]

>>
>> Suspend or Runtime suspend?
>
> The it is the runtime suspend routine for omap_hsmmc.c
>
> mmc1_pins: pinmux_mmc1_pins {
> pinctrl-single,pins = <
> 0x0fc 0x38 /* MMC0_DAT0 */
> 0x0f8 0x38 /* MMC0_DAT1 */
> 0x0f4 0x38 /* MMC0_DAT2 */
> 0x0f0 0x38 /* MMC0_DAT3 */
> 0x100 0x38 /* MMC0_CLK */
> 0x104 0x38 /* MMC0_CMD */
> 0x88 0x07 /* GPMC_CSN3 -> GPIO2_0 */
> >;
> };
>
> mmc1_sleep_pins: pinmux_mmc1_sleep_pins {
> pinctrl-single,pins = <
> 0x0fc 0x3f /* MMC0_DAT0 */
> 0x0f8 0x3f /* MMC0_DAT1 */
> 0x0f4 0x3f /* MMC0_DAT2 */
> 0x0f0 0x3f /* MMC0_DAT3 */
> 0x100 0x3f /* MMC0_CLK */
> 0x104 0x3f /* MMC0_CMD */
> 0x88 0x17 /* GPMC_CSN3 -> GPIO2_0 PULL UP */
> >;
> };
>
> mmc1_cirq_pin: pinmux_cirq_pin {
> pinctrl-single,pins = <
> 0x0f8 0x3f /* MMC0_DAT1 as GPIO2_28 */
> >;
> };
>
> wlan0_pwrseq: pwrseq {
> compatible = "mmc-pwrseq-simple";
> reset-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
> clocks = <&clk_32768_ck>;
> clock-names = "ext_clock";
> };
>
> &mmc1 {
> status = "okay";
> pinctrl-names = "default", "idle", "sleep";
> pinctrl-0 = <&mmc1_pins>;
> pinctrl-1 = <&mmc1_cirq_pin>;
> pinctrl-2 = <&mmc1_sleep_pins>;
> interrupts-extended = <&intc 64 &gpio2 28 0>;

^^ you can define IRQ type here

&gpio2 28 IRQ_TYPE_LEVEL_LOW

> ti,non-removable;
> bus-width = <4>;
> vmmc-supply = <&ldo2_reg>;
> vmmc_aux-supply = <&vmmc>;
> keep-power-in-suspend;
> enable-sdio-wakeup;
> mmc-pwrseq = <&wlan0_pwrseq>;
> };
>
>
>>
>>>>
>>>
>>> Is there any other suggestion for mwifiex that I should try out? Or
>>> is there any way in omap_hsmmc to specify the wakeup interrupt
>>> type (IRQF_TRIGGER_LOW) while using generic wakeup IRQ
>>> mechanism. I could not find it, but I may be missing something.
>>
>> How your irqs defined in DT? Could you provide mmc+wifi nodes?
>
>
>
>>
>>

[..]

--
regards,
-grygorii