Message ID | 5630BFCB.7050301@samsung.com |
---|---|
State | Not Applicable |
Delegated to: | Minkyu Kang |
Headers | show |
Hello Jaehoon, On 10/28/2015 01:30 PM, Jaehoon Chung wrote: > Hi, Przemyslaw. > > On 10/28/2015 08:33 PM, Przemyslaw Marczak wrote: >> Hello Jaehoon, >> >> On 10/28/2015 07:33 AM, Jaehoon Chung wrote: >>> Hi, All. >>> >>> On 10/05/2015 08:47 PM, Tobias Jakobi wrote: >>>> Add more debug printfs in do_sdhci_init() for calls >>>> that can potentially fail. >>>> >>>> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com> >>>> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> >>>> --- >>>> drivers/mmc/s5p_sdhci.c | 20 +++++++++++--------- >>>> 1 file changed, 11 insertions(+), 9 deletions(-) >>>> >>>> diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c >>>> index b203bee..15ecfee 100644 >>>> --- a/drivers/mmc/s5p_sdhci.c >>>> +++ b/drivers/mmc/s5p_sdhci.c >>>> @@ -101,29 +101,31 @@ struct sdhci_host sdhci_host[SDHCI_MAX_HOSTS]; >>>> >>>> static int do_sdhci_init(struct sdhci_host *host) >>>> { >>>> - int dev_id, flag; >>>> - int err = 0; >>>> + int dev_id, flag, ret; >>>> >>>> flag = host->bus_width == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE; >>>> dev_id = host->index + PERIPH_ID_SDMMC0; >>>> >>>> if (dm_gpio_is_valid(&host->pwr_gpio)) { >>>> dm_gpio_set_value(&host->pwr_gpio, 1); >>>> - err = exynos_pinmux_config(dev_id, flag); >>>> - if (err) { >>>> + ret = exynos_pinmux_config(dev_id, flag); >>>> + if (ret) { >>>> debug("MMC not configured\n"); >>>> - return err; >>>> + return ret; >>>> } >>>> } >>>> >>>> if (dm_gpio_is_valid(&host->cd_gpio)) { >>>> - if (dm_gpio_get_value(&host->cd_gpio)) >>>> + ret = dm_gpio_get_value(&host->cd_gpio); >>>> + if (ret) { >>>> + debug("no SD card detected (%d)\n", ret); >>>> return -ENODEV; >>>> + } >>> >>> This patch was already applied. But i didn't know why used "ret" at here. >>> If cd-gpio is active-high, this should be always returned "no SD card detected". >>> Even if commonly cd-gpio is active-low, we don't know whether cd-gpio is active-low or not. >>> >>> And dm_gpio_get_value() should be returned error for only one case. >>> >>> Best Regards, >>> Jaehoon Chung >>> >> >> Could you precise, where is the problem exactly? The active low or high can be set in device tree, so the code can be still common. > > How can active low or high be set in device tree? I can't find any information. > It is defined here: arch/arm/dts/include/dt-bindings/gpio/gpio.h and is used by gpio's phandle, e.g.: sdhci@12530000 { samsung,bus-width = <4>; samsung,timing = <1 2 3>; cd-gpios = <&gpk2 2 0>; } > Anyway, I have tested on Odroid-x2 board. And i have tried to boot with SD-card. > In that case, host can't detect SD-card. Can you also see this error: ----------------------------------------------------------- DRAM: 2 GiB __of_translate_address: Bad cell count for gpf0 __of_translate_address: Bad cell count for gpj0 __of_translate_address: Bad cell count for gpk0 __of_translate_address: Bad cell count for gpm0 __of_translate_address: Bad cell count for gpx0 LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling LDO21@TFLASH_2.8V: set 2800000 uV; enabling MMC: process_nodes: failed to initialize dev 0 (-19) ----------------------------------------------------------- This is caused by this commit: commit ef5cd33064f83db6f6cfe774ecdb36e32ac1d232 dm: core: Enable optional use of fdt_translate_address() And it's not related to GPIO configuration. Right now, I'm looking on how to fix it. > > MMC: process_nodes: failed to initialize dev 0 (-19) > > After Enable debug message.. > > no SD card detected (1) > process_nodes: failed to initialize dev 0 (-19) > > no SD card detected (1) -> 1 is just gpio value. it should be to 0. > Do you distinguish between 0 and 1? We don't know whether gpio is active-low or high. > I don't think that included information. > > It's just my thinking...other people should be helpful. > > And I'm making some patches...and below is one of them for detecting SD-card. > > Subject: [PATCH] mmc: s5p_sdhci: change the flags of cd-gpio to ACTIVE_LOW > > In case of exynos, "cd-gpio" is commonly used the active-low. > So it changed the flags of gpio from GPIOD_IS_IN to GPIOD_ACTIVE_LOW. > > Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> > --- > drivers/mmc/s5p_sdhci.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c > index 15ecfee..26a8fe8 100644 > --- a/drivers/mmc/s5p_sdhci.c > +++ b/drivers/mmc/s5p_sdhci.c > @@ -164,7 +164,7 @@ static int sdhci_get_config(const void *blob, int node, struct sdhci_host *host) > gpio_request_by_name_nodev(blob, node, "pwr-gpios", 0, &host->pwr_gpio, > GPIOD_IS_OUT); > gpio_request_by_name_nodev(blob, node, "cd-gpios", 0, &host->cd_gpio, > - GPIOD_IS_IN); > + GPIOD_ACTIVE_LOW); This change, is a bad idea. We uses this flag to set the direction (input/output), and also the flag GPIOD_ACTIVE_LOW is checked for output only in this function. Your commit fixes the SD detection issue by a mistake. I will send the fix in a moment, then you will see what is wrong. > > return 0; > } > @@ -187,7 +187,8 @@ static int process_nodes(const void *blob, int node_list[], int count) > > ret = sdhci_get_config(blob, node, host); > if (ret) { > - printf("%s: failed to decode dev %d (%d)\n", __func__, i, ret); > + printf("%s: failed to decode dev %d (%d)\n", > + __func__, i, ret); > failed++; > continue; > } > -- > > Best Regards, > Jaehoon Chung > > >> >> And the ret value can inform, if card is not detected or the error is in GPIO subsystem(ret < 0). So where is the problem? >> >>>> >>>> - err = exynos_pinmux_config(dev_id, flag); >>>> - if (err) { >>>> + ret = exynos_pinmux_config(dev_id, flag); >>>> + if (ret) { >>>> printf("external SD not configured\n"); >>>> - return err; >>>> + return ret; >>>> } >>>> } >>>> >>>> >>> >>> >> Best regards, > > Best regards,
Hi, Przemyslaw. On 10/28/2015 10:46 PM, Przemyslaw Marczak wrote: > Hello Jaehoon, > > On 10/28/2015 01:30 PM, Jaehoon Chung wrote: >> Hi, Przemyslaw. >> >> On 10/28/2015 08:33 PM, Przemyslaw Marczak wrote: >>> Hello Jaehoon, >>> >>> On 10/28/2015 07:33 AM, Jaehoon Chung wrote: >>>> Hi, All. >>>> >>>> On 10/05/2015 08:47 PM, Tobias Jakobi wrote: >>>>> Add more debug printfs in do_sdhci_init() for calls >>>>> that can potentially fail. >>>>> >>>>> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com> >>>>> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> >>>>> --- >>>>> drivers/mmc/s5p_sdhci.c | 20 +++++++++++--------- >>>>> 1 file changed, 11 insertions(+), 9 deletions(-) >>>>> >>>>> diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c >>>>> index b203bee..15ecfee 100644 >>>>> --- a/drivers/mmc/s5p_sdhci.c >>>>> +++ b/drivers/mmc/s5p_sdhci.c >>>>> @@ -101,29 +101,31 @@ struct sdhci_host sdhci_host[SDHCI_MAX_HOSTS]; >>>>> >>>>> static int do_sdhci_init(struct sdhci_host *host) >>>>> { >>>>> - int dev_id, flag; >>>>> - int err = 0; >>>>> + int dev_id, flag, ret; >>>>> >>>>> flag = host->bus_width == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE; >>>>> dev_id = host->index + PERIPH_ID_SDMMC0; >>>>> >>>>> if (dm_gpio_is_valid(&host->pwr_gpio)) { >>>>> dm_gpio_set_value(&host->pwr_gpio, 1); >>>>> - err = exynos_pinmux_config(dev_id, flag); >>>>> - if (err) { >>>>> + ret = exynos_pinmux_config(dev_id, flag); >>>>> + if (ret) { >>>>> debug("MMC not configured\n"); >>>>> - return err; >>>>> + return ret; >>>>> } >>>>> } >>>>> >>>>> if (dm_gpio_is_valid(&host->cd_gpio)) { >>>>> - if (dm_gpio_get_value(&host->cd_gpio)) >>>>> + ret = dm_gpio_get_value(&host->cd_gpio); >>>>> + if (ret) { >>>>> + debug("no SD card detected (%d)\n", ret); >>>>> return -ENODEV; >>>>> + } >>>> >>>> This patch was already applied. But i didn't know why used "ret" at here. >>>> If cd-gpio is active-high, this should be always returned "no SD card detected". >>>> Even if commonly cd-gpio is active-low, we don't know whether cd-gpio is active-low or not. >>>> >>>> And dm_gpio_get_value() should be returned error for only one case. >>>> >>>> Best Regards, >>>> Jaehoon Chung >>>> >>> >>> Could you precise, where is the problem exactly? The active low or high can be set in device tree, so the code can be still common. >> >> How can active low or high be set in device tree? I can't find any information. >> > > It is defined here: > arch/arm/dts/include/dt-bindings/gpio/gpio.h > and is used by gpio's phandle, e.g.: > sdhci@12530000 { > samsung,bus-width = <4>; > samsung,timing = <1 2 3>; > cd-gpios = <&gpk2 2 0>; > } Yes, I have checked. > >> Anyway, I have tested on Odroid-x2 board. And i have tried to boot with SD-card. >> In that case, host can't detect SD-card. > > Can you also see this error: > ----------------------------------------------------------- > DRAM: 2 GiB > __of_translate_address: Bad cell count for gpf0 > __of_translate_address: Bad cell count for gpj0 > __of_translate_address: Bad cell count for gpk0 > __of_translate_address: Bad cell count for gpm0 > __of_translate_address: Bad cell count for gpx0 > LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling > LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling > LDO21@TFLASH_2.8V: set 2800000 uV; enabling > MMC: process_nodes: failed to initialize dev 0 (-19) > ----------------------------------------------------------- > > This is caused by this commit: > commit ef5cd33064f83db6f6cfe774ecdb36e32ac1d232 > dm: core: Enable optional use of fdt_translate_address() > > And it's not related to GPIO configuration. > > Right now, I'm looking on how to fix it. Yes, i also found those message. I'm also finding solution. > >> >> MMC: process_nodes: failed to initialize dev 0 (-19) >> >> After Enable debug message.. >> >> no SD card detected (1) >> process_nodes: failed to initialize dev 0 (-19) >> >> no SD card detected (1) -> 1 is just gpio value. it should be to 0. >> Do you distinguish between 0 and 1? We don't know whether gpio is active-low or high. >> I don't think that included information. >> >> It's just my thinking...other people should be helpful. >> >> And I'm making some patches...and below is one of them for detecting SD-card. >> >> Subject: [PATCH] mmc: s5p_sdhci: change the flags of cd-gpio to ACTIVE_LOW >> >> In case of exynos, "cd-gpio" is commonly used the active-low. >> So it changed the flags of gpio from GPIOD_IS_IN to GPIOD_ACTIVE_LOW. >> >> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> >> --- >> drivers/mmc/s5p_sdhci.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c >> index 15ecfee..26a8fe8 100644 >> --- a/drivers/mmc/s5p_sdhci.c >> +++ b/drivers/mmc/s5p_sdhci.c >> @@ -164,7 +164,7 @@ static int sdhci_get_config(const void *blob, int node, struct sdhci_host *host) >> gpio_request_by_name_nodev(blob, node, "pwr-gpios", 0, &host->pwr_gpio, >> GPIOD_IS_OUT); >> gpio_request_by_name_nodev(blob, node, "cd-gpios", 0, &host->cd_gpio, >> - GPIOD_IS_IN); >> + GPIOD_ACTIVE_LOW); > > This change, is a bad idea. Yep, it's not good idea. I'm not sure, cd-gpio pin has to set GPIOD_IS_IN. I can't find the any information about gpio direction. Tomorrow, when i go to the office, i will check. > > We uses this flag to set the direction (input/output), and also the flag GPIOD_ACTIVE_LOW is checked for output only in this function. > > Your commit fixes the SD detection issue by a mistake. > > I will send the fix in a moment, then you will see what is wrong. Well, i didn't minutely see u-boot code during long time. So i may miss something..I will check more for u-boot code. Thanks for pointing out. :) Best Regards, Jaehoon Chung > >> >> return 0; >> } >> @@ -187,7 +187,8 @@ static int process_nodes(const void *blob, int node_list[], int count) >> >> ret = sdhci_get_config(blob, node, host); >> if (ret) { >> - printf("%s: failed to decode dev %d (%d)\n", __func__, i, ret); >> + printf("%s: failed to decode dev %d (%d)\n", >> + __func__, i, ret); >> failed++; >> continue; >> } >> -- >> >> Best Regards, >> Jaehoon Chung >> >> >>> >>> And the ret value can inform, if card is not detected or the error is in GPIO subsystem(ret < 0). So where is the problem? >>> >>>>> >>>>> - err = exynos_pinmux_config(dev_id, flag); >>>>> - if (err) { >>>>> + ret = exynos_pinmux_config(dev_id, flag); >>>>> + if (ret) { >>>>> printf("external SD not configured\n"); >>>>> - return err; >>>>> + return ret; >>>>> } >>>>> } >>>>> >>>>> >>>> >>>> >>> Best regards, >> >> > > Best regards,
Hello Jaehoon, On 10/28/2015 03:36 PM, Jaehoon Chung wrote: > Hi, Przemyslaw. > > On 10/28/2015 10:46 PM, Przemyslaw Marczak wrote: >> Hello Jaehoon, >> >> On 10/28/2015 01:30 PM, Jaehoon Chung wrote: >>> Hi, Przemyslaw. >>> >>> On 10/28/2015 08:33 PM, Przemyslaw Marczak wrote: >>>> Hello Jaehoon, >>>> >>>> On 10/28/2015 07:33 AM, Jaehoon Chung wrote: >>>>> Hi, All. >>>>> >>>>> On 10/05/2015 08:47 PM, Tobias Jakobi wrote: >>>>>> Add more debug printfs in do_sdhci_init() for calls >>>>>> that can potentially fail. >>>>>> >>>>>> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com> >>>>>> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> >>>>>> --- >>>>>> drivers/mmc/s5p_sdhci.c | 20 +++++++++++--------- >>>>>> 1 file changed, 11 insertions(+), 9 deletions(-) >>>>>> >>>>>> diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c >>>>>> index b203bee..15ecfee 100644 >>>>>> --- a/drivers/mmc/s5p_sdhci.c >>>>>> +++ b/drivers/mmc/s5p_sdhci.c >>>>>> @@ -101,29 +101,31 @@ struct sdhci_host sdhci_host[SDHCI_MAX_HOSTS]; >>>>>> >>>>>> static int do_sdhci_init(struct sdhci_host *host) >>>>>> { >>>>>> - int dev_id, flag; >>>>>> - int err = 0; >>>>>> + int dev_id, flag, ret; >>>>>> >>>>>> flag = host->bus_width == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE; >>>>>> dev_id = host->index + PERIPH_ID_SDMMC0; >>>>>> >>>>>> if (dm_gpio_is_valid(&host->pwr_gpio)) { >>>>>> dm_gpio_set_value(&host->pwr_gpio, 1); >>>>>> - err = exynos_pinmux_config(dev_id, flag); >>>>>> - if (err) { >>>>>> + ret = exynos_pinmux_config(dev_id, flag); >>>>>> + if (ret) { >>>>>> debug("MMC not configured\n"); >>>>>> - return err; >>>>>> + return ret; >>>>>> } >>>>>> } >>>>>> >>>>>> if (dm_gpio_is_valid(&host->cd_gpio)) { >>>>>> - if (dm_gpio_get_value(&host->cd_gpio)) >>>>>> + ret = dm_gpio_get_value(&host->cd_gpio); >>>>>> + if (ret) { >>>>>> + debug("no SD card detected (%d)\n", ret); >>>>>> return -ENODEV; >>>>>> + } >>>>> >>>>> This patch was already applied. But i didn't know why used "ret" at here. >>>>> If cd-gpio is active-high, this should be always returned "no SD card detected". >>>>> Even if commonly cd-gpio is active-low, we don't know whether cd-gpio is active-low or not. >>>>> >>>>> And dm_gpio_get_value() should be returned error for only one case. >>>>> >>>>> Best Regards, >>>>> Jaehoon Chung >>>>> >>>> >>>> Could you precise, where is the problem exactly? The active low or high can be set in device tree, so the code can be still common. >>> >>> How can active low or high be set in device tree? I can't find any information. >>> >> >> It is defined here: >> arch/arm/dts/include/dt-bindings/gpio/gpio.h >> and is used by gpio's phandle, e.g.: >> sdhci@12530000 { >> samsung,bus-width = <4>; >> samsung,timing = <1 2 3>; >> cd-gpios = <&gpk2 2 0>; >> } > > Yes, I have checked. > >> >>> Anyway, I have tested on Odroid-x2 board. And i have tried to boot with SD-card. >>> In that case, host can't detect SD-card. >> >> Can you also see this error: >> ----------------------------------------------------------- >> DRAM: 2 GiB >> __of_translate_address: Bad cell count for gpf0 >> __of_translate_address: Bad cell count for gpj0 >> __of_translate_address: Bad cell count for gpk0 >> __of_translate_address: Bad cell count for gpm0 >> __of_translate_address: Bad cell count for gpx0 >> LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling >> LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling >> LDO21@TFLASH_2.8V: set 2800000 uV; enabling >> MMC: process_nodes: failed to initialize dev 0 (-19) >> ----------------------------------------------------------- >> >> This is caused by this commit: >> commit ef5cd33064f83db6f6cfe774ecdb36e32ac1d232 >> dm: core: Enable optional use of fdt_translate_address() >> >> And it's not related to GPIO configuration. >> >> Right now, I'm looking on how to fix it. > > Yes, i also found those message. I'm also finding solution. Please check the patches for which you're Cc'ed :) 1 fdt fix: https://patchwork.ozlabs.org/patch/537372/ 2 patches for sd detection fix: https://patchwork.ozlabs.org/patch/537381/ https://patchwork.ozlabs.org/patch/537379/ Tested for X2 and U3. >> >>> >>> MMC: process_nodes: failed to initialize dev 0 (-19) >>> >>> After Enable debug message.. >>> >>> no SD card detected (1) >>> process_nodes: failed to initialize dev 0 (-19) >>> >>> no SD card detected (1) -> 1 is just gpio value. it should be to 0. >>> Do you distinguish between 0 and 1? We don't know whether gpio is active-low or high. >>> I don't think that included information. >>> >>> It's just my thinking...other people should be helpful. >>> >>> And I'm making some patches...and below is one of them for detecting SD-card. >>> >>> Subject: [PATCH] mmc: s5p_sdhci: change the flags of cd-gpio to ACTIVE_LOW >>> >>> In case of exynos, "cd-gpio" is commonly used the active-low. >>> So it changed the flags of gpio from GPIOD_IS_IN to GPIOD_ACTIVE_LOW. >>> >>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> >>> --- >>> drivers/mmc/s5p_sdhci.c | 5 +++-- >>> 1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c >>> index 15ecfee..26a8fe8 100644 >>> --- a/drivers/mmc/s5p_sdhci.c >>> +++ b/drivers/mmc/s5p_sdhci.c >>> @@ -164,7 +164,7 @@ static int sdhci_get_config(const void *blob, int node, struct sdhci_host *host) >>> gpio_request_by_name_nodev(blob, node, "pwr-gpios", 0, &host->pwr_gpio, >>> GPIOD_IS_OUT); >>> gpio_request_by_name_nodev(blob, node, "cd-gpios", 0, &host->cd_gpio, >>> - GPIOD_IS_IN); >>> + GPIOD_ACTIVE_LOW); >> >> This change, is a bad idea. > > Yep, it's not good idea. > I'm not sure, cd-gpio pin has to set GPIOD_IS_IN. I can't find the any information about gpio direction. > Tomorrow, when i go to the office, i will check. > Please see the schematic of U3 and also XU3, the CD-det pin is pulled up. When you insert the card, it's mechanically pulled down - so card is detected for low state. >> >> We uses this flag to set the direction (input/output), and also the flag GPIOD_ACTIVE_LOW is checked for output only in this function. >> >> Your commit fixes the SD detection issue by a mistake. >> >> I will send the fix in a moment, then you will see what is wrong. > > Well, i didn't minutely see u-boot code during long time. > So i may miss something..I will check more for u-boot code. > > Thanks for pointing out. :) > > Best Regards, > Jaehoon Chung > No problem, thanks for mention about this issue:) >> >>> >>> return 0; >>> } >>> @@ -187,7 +187,8 @@ static int process_nodes(const void *blob, int node_list[], int count) >>> >>> ret = sdhci_get_config(blob, node, host); >>> if (ret) { >>> - printf("%s: failed to decode dev %d (%d)\n", __func__, i, ret); >>> + printf("%s: failed to decode dev %d (%d)\n", >>> + __func__, i, ret); >>> failed++; >>> continue; >>> } >>> -- >>> >>> Best Regards, >>> Jaehoon Chung >>> >>> >>>> >>>> And the ret value can inform, if card is not detected or the error is in GPIO subsystem(ret < 0). So where is the problem? >>>> >>>>>> >>>>>> - err = exynos_pinmux_config(dev_id, flag); >>>>>> - if (err) { >>>>>> + ret = exynos_pinmux_config(dev_id, flag); >>>>>> + if (ret) { >>>>>> printf("external SD not configured\n"); >>>>>> - return err; >>>>>> + return ret; >>>>>> } >>>>>> } >>>>>> >>>>>> >>>>> >>>>> >>>> Best regards, >>> >>> >> >> Best regards, > Best regards,
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c index 15ecfee..26a8fe8 100644 --- a/drivers/mmc/s5p_sdhci.c +++ b/drivers/mmc/s5p_sdhci.c @@ -164,7 +164,7 @@ static int sdhci_get_config(const void *blob, int node, struct sdhci_host *host) gpio_request_by_name_nodev(blob, node, "pwr-gpios", 0, &host->pwr_gpio, GPIOD_IS_OUT); gpio_request_by_name_nodev(blob, node, "cd-gpios", 0, &host->cd_gpio, - GPIOD_IS_IN); + GPIOD_ACTIVE_LOW); return 0; } @@ -187,7 +187,8 @@ static int process_nodes(const void *blob, int node_list[], int count) ret = sdhci_get_config(blob, node, host); if (ret) { - printf("%s: failed to decode dev %d (%d)\n", __func__, i, ret); + printf("%s: failed to decode dev %d (%d)\n", + __func__, i, ret); failed++; continue; }