Message ID | 52D6938A.9050806@linaro.org |
---|---|
State | Superseded |
Headers | show |
On 01/15/2014 10:20 PM, Arnd Bergmann wrote: > On Wednesday 15 January 2014 14:59:59 Arnd Bergmann wrote: >> On Wednesday 15 January 2014 21:56:26 zhangfei wrote: >>> However, in our board cd =0 when card is deteced while cd=1 when card is >>> removed. >>> In order to mmc_gpio_get_cd return 1, MMC_CAP2_CD_ACTIVE_HIGH has to be >>> set, as well as new property "caps2-mmc-cd-active-low". >>> >>> --- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt >>> +++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt >>> @@ -73,6 +73,8 @@ Optional properties: >>> +* caps2-mmc-cd-active-low: cd pin is low when card active >>> + >>> >>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >>> + if (of_find_property(np, "caps2-mmc-cd-active-low", NULL)) >>> + pdata->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH; >>> + >> >> The MMC_CAP2_CD_ACTIVE_HIGH flag should only be required for >> legacy platforms. With DT parsing, you can normally specify >> the polarity of the GPIO line in the GPIO specifier in DT. > > I missed the fact that we already have a "cd-inverted" property > as specified in bindings/mmc/mmc.txt. If your GPIO controller > does not handle polarity, you can use that. > Thanks Arnd GPIO controller drivers/gpio/gpio-pl061.c still not handle polarity, so use "cd-inverted" instead.
--- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt @@ -73,6 +73,8 @@ Optional properties: +* caps2-mmc-cd-active-low: cd pin is low when card active + diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c + if (of_find_property(np, "caps2-mmc-cd-active-low", NULL)) + pdata->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH; + But it looks strange "cd-active-low" describing "CD_ACTIVE_HIGH" flag. When card active, cd = 0, and ACTIVE_HIGH is required to make mmc_gpio_get_cd return 1.