2017-05-24 20:27 GMT+08:00 Robin Murphy <robin.murphy@xxxxxxx>: > On 24/05/17 12:34, Heiko Stuebner wrote: >> Am Mittwoch, 24. Mai 2017, 11:26:10 CEST schrieb Robin Murphy: >>> On 24/05/17 09:17, Heiko Stuebner wrote: >>>> Hi Eddie, >>>> >>>> Am Mittwoch, 24. Mai 2017, 15:33:41 CEST schrieb Eddie Cai: >>>>> the previous setting of act8846 is just copy from firefly board. but >>>>> the reload board is a little different from firefly board. let's correct >>>>> it. >>>>> >>>>> Signed-off-by: Eddie Cai <eddie.cai.linux@xxxxxxxxx> >>>>> --- >>>>> arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi | 21 +++++++++++---------- >>>>> 1 file changed, 11 insertions(+), 10 deletions(-) >>>>> >>>>> diff --git a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi >>>>> index 8134966..4cfa109 100644 >>>>> --- a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi >>>>> +++ b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi >>>>> @@ -179,6 +179,7 @@ >>>>> regulator-name = "vccio_sd"; >>>>> regulator-min-microvolt = <3300000>; >>>>> regulator-max-microvolt = <3300000>; >>>>> + regulator-always-on; >>>> >>>> the rest below looks pretty straight forward, but why does vccio_sd >>>> need to be always on? >>>> >>>> I've checked the reload's schematics but did not find any further users >>>> of vccio_sd that may warant this attribute. >>> >>> It looks like the card detect line is pulled up externally to vcc_sd, >>> which isn't always-on either, so you probably do want this - on the >>> (unrelated) rk3288 TV box I've been hacking on, I discovered that >>> powering off the sdmmc-supply domain also kills the internal pull-up and >>> leaves sdmmc_cd floating. The resulting stochastic card polling >>> mechanism is amusing, but probably undesirable ;) >> >> Hmm, are you mixing up vcc_sd and vccio_sd? >> >> vccio_sd is the io supply (vqmmc in mmc-terms) to the mmc-host itself >> while vcc_sd is the actual card supply (vmmc in mmc-terms). > > Yes, that is what I meant, although I was implicitly assuming the case > where the MMC host driver has already turned off vcc_sd due to no card > being present. I'll double-check, but I'm 99% certain that *unlike* > Firefly, the Hotack board I've got (seemingly a straight implementation > of the "Box" reference design based on what I've managed to > reverse-engineer from scouring the internet) has no external pull-ups > for anything on its microSD socket, so is entirely reliant on everything > being pulled up internally to SDMMC0_VDD, i.e. vccio_sd. > >> After looking through some schematics, the pull-up to vcc_sd seems to be >> the common pattern for rk3288 devices. So I guess this means the fixed >> regulator vcc_sd should get an regulator-always-on instead to stabilize >> the card-detect? > > That might make sense, especially where vcc_sd is just vcc_io behind a > MOSFET switch, so turning it "off" when there's no card to draw power > anyway probably doesn't achieve much. Plus if you can then rely on > vcc_sd not going away it might be worth disabling the internal pull-ups > which are still being set by all the sdmmc_* pinctrl configs as well. the host might want to reset the card power when the card controller hang up. it won't work if we add regulator-always-on to vcc_sd. So i would still prefer to add regulator-always-on to vccio_sd instead of vcc_sd > > Robin. > >>>>> }; >>>>> >>>>> vdd10_lcd: REG6 { >>>>> @@ -187,24 +188,23 @@ >>>>> regulator-max-microvolt = <1000000>; >>>>> }; >>>>> >>>>> - vcca_18: REG7 { >>>>> - regulator-name = "vcca_18"; >>>>> - regulator-min-microvolt = <1800000>; >>>>> - regulator-max-microvolt = <1800000>; >>>>> - regulator-always-on; >>>>> + vcca_33: REG7 { >>>>> + regulator-name = "vcca_33"; >>>>> + regulator-min-microvolt = <3300000>; >>>>> + regulator-max-microvolt = <3300000>; >>>>> }; >>>>> >>>>> - vcca_33: REG8 { >>>>> - regulator-name = "vcca_33"; >>>>> + vcc_lan: REG8 { >>>>> + regulator-name = "vcc_lan"; >>>>> regulator-min-microvolt = <3300000>; >>>>> regulator-max-microvolt = <3300000>; >>>>> - regulator-always-on; >>>>> }; >>>>> >>>>> - vcc_lan: REG9 { >>>>> - regulator-name = "vcca_lan"; >>>>> + vccio_pmu: REG9 { >>>>> + regulator-name = "vccio_pmu"; >>>>> regulator-min-microvolt = <3300000>; >>>>> regulator-max-microvolt = <3300000>; >>>>> + regulator-always-on; >>>>> }; >>>>> >>>>> vdd_10: REG10 { >>>>> @@ -218,6 +218,7 @@ >>>>> regulator-name = "vcc_18"; >>>>> regulator-min-microvolt = <1800000>; >>>>> regulator-max-microvolt = <1800000>; >>>>> + regulator-always-on; >>>>> }; >>>>> >>>>> vcc18_lcd: REG12 { >>>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> linux-arm-kernel mailing list >>>> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>>> >>> >>> >>> >> >> > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html