[PATCH 2/4] ARM: davinci: board-da850-evm: fix GPIO lookup for MMC/SD

Adam Ford aford173 at gmail.com
Tue May 15 15:53:17 PDT 2018


On Thu, Apr 26, 2018 at 8:40 PM, David Lechner <david at lechnology.com> wrote:
> On 04/24/2018 09:35 AM, Sekhar Nori wrote:
>>
>> The GPIO chip is called davinci_gpio.0 in legacy mode. Fix it, so that
>> mmc can correctly lookup the wp and cp gpios. Also fix the GPIO numbers
>> as they are not offsets within a bank.
>>
>> Note that it is the gpio-davinci driver that sets the gpiochip label to
>> davinci_gpio.0.
>>
>> Fixes: bdf0e8364fd3 ("ARM: davinci: da850-evm: use gpio descriptor for mmc
>> pins")
>> Signed-off-by: Sekhar Nori <nsekhar at ti.com>
>> ---
>>   arch/arm/mach-davinci/board-da850-evm.c | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-davinci/board-da850-evm.c
>> b/arch/arm/mach-davinci/board-da850-evm.c
>> index 3063478bcc36..158ed9a1483f 100644
>> --- a/arch/arm/mach-davinci/board-da850-evm.c
>> +++ b/arch/arm/mach-davinci/board-da850-evm.c
>> @@ -763,12 +763,17 @@ static const short da850_evm_mcasp_pins[]
>> __initconst = {
>>         -1
>>   };
>>   +#define DA850_MMCSD_CD_PIN           GPIO_TO_PIN(4, 0)
>> +#define DA850_MMCSD_WP_PIN             GPIO_TO_PIN(4, 1)
>> +
>>   static struct gpiod_lookup_table mmc_gpios_table = {
>>         .dev_id = "da830-mmc.0",
>>         .table = {
>>                 /* gpio chip 2 contains gpio range 64-95 */
>> -               GPIO_LOOKUP("davinci_gpio.2", 0, "cd", GPIO_ACTIVE_LOW),
>> -               GPIO_LOOKUP("davinci_gpio.2", 1, "wp", GPIO_ACTIVE_LOW),
>> +               GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_CD_PIN, "cd",
>> +                           GPIO_ACTIVE_LOW),
>> +               GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_WP_PIN, "wp",
>> +                           GPIO_ACTIVE_LOW),

I don't think the WP polarity is working correctly.  If I boot the
board 'rw' enabled but WP disabled on the SD card, the system crashes.
If I enable WP, the board boots correctly.

Comparing this to the device tree version that I did, and double
checking the behavior for my sanity, I believe WP needs to be
GPIO_ACTIVE_HIGH

adam

>>         },
>>   };
>>
>
>
> Reviewed-by: David Lechner <david at lechnology.com>
>



More information about the linux-arm-kernel mailing list