Re: [PATCH v2 00/16] omap_hsmmc: regulator usage cleanup and fixes

From: Tony Lindgren
Date: Fri Aug 21 2015 - 03:41:40 EST


* Kishon Vijay Abraham I <kishon@xxxxxx> [150820 05:39]:
> Hi,
>
> On Monday 03 August 2015 05:56 PM, Kishon Vijay Abraham I wrote:
> > Changes from v1:
> > *) return on -EPROBE_DEFER and other fatal errors. (Don't return only
> > if the return value is -ENODEV)
> > *) Remove the beagle x15 dts patch. It can be part of a different
> > series.
> > *) Avoid using regulator_is_enabled for vqmmc since if the regulator
> > is shared and the other users are not using regulator_is_enabled
> > then there can be unbalanced regulator_enable/regulator_disable
> >
> > This patch series does the following
> > *) Uses devm_regulator_get_optional() for vmmc and then removes the
> > CONFIG_REGULATOR check altogether.
> > *) return on -EPROBE_DEFER and any other fatal errors
> > *) enable/disable vmmc_aux regulator based on prior state
> >
> > I've pushed this patch series to
> > git://git.ti.com/linux-phy/linux-phy.git mmc_regulator_cleanup_fixes_v2
> >
> > Please note the branch also has the pbias fixes [1] & [2].
> > [1] -> https://lkml.org/lkml/2015/7/27/358
> > [2] -> https://lkml.org/lkml/2015/7/27/391
> >
> > This series is in preparation for implementing the voltage switch
> > sequence so that UHS cards can be supported.
> >
> > Did basic read/write test in J6, J6 Eco, Beagle-x15, AM437x EVM,
> > Beaglebone black, OMAP5 uEVM and OMAP4 PANDA.
>
> I have now done read/write test in omap3 beagle-xm with this series!

Great thanks for doing that. Also gave this series a try here
with my off idle MMC SDIO WLAN card test and things still work
for me. That's not really testing the PBIAS regulator though,
but a good torture test for saving and restoring context. So
FWIW:

Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>

If you need a PM torture test for PBIAS regulator, you could try
to do the following on your beagle xm MMC card with
oamp2plus_defconfig:

1. Make sure EHCI modules are not loaded and OTG USB cable is
not connected

2. Enable UART timeouts and off idle with something like:

!/bin/bash

uarts=$(find /sys/class/tty/tty[SO]*/device/power/ -type d)
for uart in $uarts; do
echo 3000 > $uart/autosuspend_delay_ms 2>&1
done

modprobe leds-gpio
modprobe ledtrig-default-on

uarts=$(find /sys/class/tty/tty[SO]*/power/ -type d 2>/dev/null)
for uart in $uarts; do
echo enabled > $uart/wakeup 2>&1
echo auto > $uart/control 2>&1
done

echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode

3. Make sure you start seeing core_pwrdm OFF count increasing
with cat /sys/kernel/debug/pm_debug/count

MMC should keep on working when hitting idle, if not, something
is not saved or restored properly. And SDIO WLAN cards should
wake up the system and respond to ping if the wakeirq is
configured in the dts file for the MMC controller. At least
mwifiex_sdio cards work for this :)

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/