On 2016/8/9 9:49, Shawn Lin wrote: > Hi, > > On 2016/8/8 18:24, Jaehoon Chung wrote: >> Hi Shawn, >> >> On 08/07/2016 10:33 AM, Shawn Lin wrote: >>> By default, dw_mmc outputs high level voltage to indicate powering >>> up the card and outputs low level vcltage to indicate powering >>> off the card. But that is not always correct. The power io should >>> be able to control different kind of hw components to supply or >>> cutoff power to the card. We have boards that need this patchset >>> to make the power control correct. Meanwhile let's expose it to >>> DT for board-specific usage. >> >> I have a question for this patch-set. Does DWMMC IP support to invert >> ON/OFF at Power Enable register? > > No. > >> Hmm..Well, if use the DW_MMC_CARD_PWR_INVERT, it should also be the >> similar behavior with Quirks. > > yup, it makes the power control more complicated than before. :( > >> >> Other flags are related with dwmmc IP. But this flag >> (DW_MMC_CARD_PWR_INVERT) is not related with IP side. >> I understood why you needs to add this flag..Is rockchip designed to >> invert the power controlling? > > We don't invert the power controlling but our customers do. > The HW componet looks like some discrete LDOs which enable the related > power supply when outputing low voltage from pwren.. > >> >> But it's not general case. We can discuss about this. > > I have a solution which is to add gpio power control for slot-gpio of > mmc core. once finished, we could add pwr_cap_invert just like what we > did for cd/wp invert control.. > > Then we could remove PWREN from the default state of > pinctrl inside the sdmmc dt node, and let dwmmc request gpio power > control stuff after paring the property for pwr_cap_invert.. > > More over, it well fit for all mmc host's requirement of gpio > power control and inverted control if they want it. :) > > > That should be legit for us? > If it sounds ok to you and Ulf, I will come up with a RFC one for > community to comment it.:) one more, maybe pwrseq is also a choice for us. But I'm not sure if it deserves a pwerseq_sd.c ? > >> >> Best Regards, >> Jaehoon Chung >> >>> >>> >>> Changes in v2: >>> - fix copy-paste err and typo >>> >>> Shawn Lin (6): >>> dt-bindings: rockchip-dw-mshc: add description of >>> rockchip,power-invert >>> mmc: dw_mmc: cleanup power setting of set_ios callback >>> mmc: dw_mmc: split out dw_mci_set_power >>> mmc: dw_mmc: split out dw_mci_set_power_reg >>> mmc: dw_mmc: support inverted power control >>> mmc: dw_mmc-rockchip: add parsing of power control from DT >>> >>> .../devicetree/bindings/mmc/rockchip-dw-mshc.txt | 6 + >>> drivers/mmc/host/dw_mmc-rockchip.c | 8 ++ >>> drivers/mmc/host/dw_mmc.c | 134 >>> ++++++++++++--------- >>> drivers/mmc/host/dw_mmc.h | 1 + >>> 4 files changed, 90 insertions(+), 59 deletions(-) >>> >> >> >> >> > > -- Best Regards Shawn Lin