Skip to content

Commit 4f4c174

Browse files
committed
pinctrl: Show -- for unknown pin levels
It's better to indicate an unknown pin level than treat it as a low, so show '--' instead. Make the RP1 gpiochip report an unknown level when the Input Enable is not set on the pad. Signed-off-by: Phil Elwell <[email protected]>
1 parent b68d5cb commit 4f4c174

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

pinctrl/gpiochip_rp1.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,14 @@ static int rp1_gpio_get_level(void *priv, unsigned gpio)
338338
{
339339
volatile uint32_t *base = priv;
340340
int bank, offset;
341+
uint32_t pad_reg;
341342
uint32_t reg;
342343
int level;
343344

344345
rp1_gpio_get_bank(gpio, &bank, &offset);
346+
pad_reg = rp1_gpio_pads_read(base, bank, offset);
347+
if (!(pad_reg & RP1_PADS_IE_SET))
348+
return -1;
345349
reg = rp1_gpio_sys_rio_sync_in_read(base, bank, offset);
346350
level = (reg & (1U << offset)) ? 1 : 0;
347351

pinctrl/pinctrl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ static int do_gpio_get(unsigned int gpio)
155155

156156
printf(" %s | %s // %s%s%s\n",
157157
gpio_get_pull_name(gpio_get_pull(gpio)),
158-
gpio_get_level(gpio) ? "hi" : "lo",
158+
(gpio_get_level(gpio) == 1) ? "hi" : (gpio_get_level(gpio) == 0) ? "lo" : "--",
159159
name ? name : "",
160160
name ? " = " : "",
161161
gpio_get_gpio_fsel_name(gpio, fsel));

0 commit comments

Comments
 (0)