diff mbox

[v2,3/5] ARM: mvebu: set SW polling as SDHCI card detection on A388-GP

Message ID 1444352635-21965-4-git-send-email-mw@semihalf.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marcin Wojtas Oct. 9, 2015, 1:03 a.m. UTC
The newest revisions of A388-GP (v1.5 and higher) support only
DAT3-based card detection. Revisions < v1.5 based on GPIO detection
via I2C expander, but this solution is supposed to be deprecated on
new boards. In order to satisfy all type of hardware this commit
changes card detection to use software polling mechanism.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
---
 arch/arm/boot/dts/armada-388-gp.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni Oct. 9, 2015, 7:52 a.m. UTC | #1
Dear Marcin Wojtas,

On Fri,  9 Oct 2015 03:03:53 +0200, Marcin Wojtas wrote:
> The newest revisions of A388-GP (v1.5 and higher) support only
> DAT3-based card detection. Revisions < v1.5 based on GPIO detection
> via I2C expander, but this solution is supposed to be deprecated on
> new boards. In order to satisfy all type of hardware this commit
> changes card detection to use software polling mechanism.
> 
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>

Can we add a comment on the DT that explains why SW polling is used,
and which other mechanism can be used depending on the board revision?

Thanks,

Thomas
Marcin Wojtas Oct. 9, 2015, 10:16 a.m. UTC | #2
Hi Thomas,


2015-10-09 9:52 GMT+02:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Dear Marcin Wojtas,
>
> On Fri,  9 Oct 2015 03:03:53 +0200, Marcin Wojtas wrote:
>> The newest revisions of A388-GP (v1.5 and higher) support only
>> DAT3-based card detection. Revisions < v1.5 based on GPIO detection
>> via I2C expander, but this solution is supposed to be deprecated on
>> new boards. In order to satisfy all type of hardware this commit
>> changes card detection to use software polling mechanism.
>>
>> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
>
> Can we add a comment on the DT that explains why SW polling is used,
> and which other mechanism can be used depending on the board revision?

Sure, good idea. Do you think the below would be sufficient?
sdhci@d8000 {
    pinctrl-names = "default";
    pinctrl-0 = <&sdhci_pins>;
    no-1-8-v;
    /*
     * A388-GP board v1.5 and higher replace
     * hitherto card detection method based on GPIO
     * with the one using DAT3 pin. As they are
     * incompatible, software-based polling is
     * enabled with 'broken-cd' property. For boards
     * older than v1.5 it can be replaced with:
     * 'cd-gpios = <&expander0 5 GPIO_ACTIVE_LOW>;',
     * whereas for the newer ones following can be
     * used instead:
     * 'dat3-cd;'
     * 'cd-inverted;'
     */
broken-cd;
wp-inverted;
bus-width = <8>;
status = "okay";
};

Best regards,
Marcin
Andrew Lunn Oct. 9, 2015, 1:46 p.m. UTC | #3
On Fri, Oct 09, 2015 at 03:03:53AM +0200, Marcin Wojtas wrote:
> The newest revisions of A388-GP (v1.5 and higher) support only
> DAT3-based card detection. Revisions < v1.5 based on GPIO detection
> via I2C expander, but this solution is supposed to be deprecated on
> new boards. In order to satisfy all type of hardware this commit
> changes card detection to use software polling mechanism.

Hi Marcin

Thanks for going with broken-cd and not introducing a regression for
older boards. As others have said, a comment would be good, but
otherwise:

Acked-by: Andrew Lunn <andrew@lunn.ch>

Thanks
	Andrew

> 
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
> ---
>  arch/arm/boot/dts/armada-388-gp.dts | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
> index 391dea9..403a86b 100644
> --- a/arch/arm/boot/dts/armada-388-gp.dts
> +++ b/arch/arm/boot/dts/armada-388-gp.dts
> @@ -213,8 +213,8 @@
>  			sdhci@d8000 {
>  				pinctrl-names = "default";
>  				pinctrl-0 = <&sdhci_pins>;
> -				cd-gpios = <&expander0 5 GPIO_ACTIVE_LOW>;
>  				no-1-8-v;
> +				broken-cd;
>  				wp-inverted;
>  				bus-width = <8>;
>  				status = "okay";
> -- 
> 1.8.3.1
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
index 391dea9..403a86b 100644
--- a/arch/arm/boot/dts/armada-388-gp.dts
+++ b/arch/arm/boot/dts/armada-388-gp.dts
@@ -213,8 +213,8 @@ 
 			sdhci@d8000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&sdhci_pins>;
-				cd-gpios = <&expander0 5 GPIO_ACTIVE_LOW>;
 				no-1-8-v;
+				broken-cd;
 				wp-inverted;
 				bus-width = <8>;
 				status = "okay";