On 01/16/2014 12:22 AM, Russell King - ARM Linux wrote:
Well, having this in the gpio level as well as in subsystems like MMC
is going to create confusion - and from the results of this patch _IS_
causing confusion. You've just encouraged one implementation to have
things setup such that mmc_gpio_get_cd() returns false when a card is
inserted, rather than it correctly returning true.
The issue here is that we'll potentially now end up with _three_
inversions. One in the GPIO layers. One in mmc_gpio_get_cd(), and
another in every driver which uses the GPIO layer inversion. This
is hardly the right approach as it leads to multiple points where
confusion about the inverted status can occur.
Thanks Russell, make sense.
Double checked with the hardware guy, cd pin is high when card inserted
on the board.
The cd pin is originally connected to vout via a resister, and
internally short to gound, which is broken when card inserted.
Then Optional properties "caps2-mmc-cd-active-high" has to be added.
--- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
+* caps2-mmc-cd-active-high: cd pin is high when card present
@@ -2411,6 +2414,9 @@ static struct dw_mci_board *dw_mci_parse_dt(struct
dw_mci *host)
if (of_find_property(np, "caps2-mmc-hs200-1_2v", NULL))
pdata->caps2 |= MMC_CAP2_HS200_1_2V_SDR;
+ if (of_find_property(np, "caps2-mmc-cd-active-high", NULL))
+ pdata->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH;
+
Thanks
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html