> Stefan Wahren <stefan.wahren@xxxxxxxx> hat am 2. Januar 2019 um 16:59 geschrieben: > > > Hi, > > during test of my latest BCM2835 DT patch series [1], i noticed a discrepancy between pinctrl debugfs and gpioinfo from libgpio on my Raspberry Pi 3 (linux-next, multi_v7_defconfig): > > 1. Pins configured as alternative function (e.g. pin 0 as alt0) are considered by gpioinfo as input even the get_direction callback of the pinctrl-bcm2835 returns -EINVAL in this case > > 2. Pins whose mux is claimed by a kernel driver (e.g. pin 0 by i2c) are considered by gpioinfo as unused > > I think this is very confusing for users. For completeness the relevant outputs are below. > > Where does this needs to be fixed (pinctrl/gpio driver, gpiolib, libgpiod)? > > Best regards > Stefan > > Output of pinmux-pins: > pin 0 (gpio0): 3f205000.i2c (GPIO UNCLAIMED) function alt0 group gpio0 > pin 1 (gpio1): 3f205000.i2c (GPIO UNCLAIMED) function alt0 group gpio1 > pin 2 (gpio2): 3f804000.i2c (GPIO UNCLAIMED) function alt0 group gpio2 > pin 3 (gpio3): 3f804000.i2c (GPIO UNCLAIMED) function alt0 group gpio3 > pin 4 (gpio4): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 5 (gpio5): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 6 (gpio6): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 7 (gpio7): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 8 (gpio8): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 9 (gpio9): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 10 (gpio10): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 11 (gpio11): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 12 (gpio12): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 13 (gpio13): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 14 (gpio14): 3f215040.serial (GPIO UNCLAIMED) function alt5 group gpio14 > pin 15 (gpio15): 3f215040.serial (GPIO UNCLAIMED) function alt5 group gpio15 > pin 16 (gpio16): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 17 (gpio17): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 18 (gpio18): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 19 (gpio19): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 20 (gpio20): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 21 (gpio21): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 22 (gpio22): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 23 (gpio23): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 24 (gpio24): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 25 (gpio25): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 26 (gpio26): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 27 (gpio27): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 28 (gpio28): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 29 (gpio29): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 30 (gpio30): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 31 (gpio31): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 32 (gpio32): 3f201000.serial (GPIO UNCLAIMED) function alt3 group gpio32 > pin 33 (gpio33): 3f201000.serial (GPIO UNCLAIMED) function alt3 group gpio33 > pin 34 (gpio34): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio34 > pin 35 (gpio35): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio35 > pin 36 (gpio36): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio36 > pin 37 (gpio37): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio37 > pin 38 (gpio38): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio38 > pin 39 (gpio39): 3f300000.sdhci (GPIO UNCLAIMED) function alt3 group gpio39 > pin 40 (gpio40): 3f20c000.pwm (GPIO UNCLAIMED) function alt0 group gpio40 > pin 41 (gpio41): 3f20c000.pwm (GPIO UNCLAIMED) function alt0 group gpio41 > pin 42 (gpio42): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 43 (gpio43): 3f201000.serial (GPIO UNCLAIMED) function alt0 group gpio43 > pin 44 (gpio44): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 45 (gpio45): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 46 (gpio46): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 47 (gpio47): (MUX UNCLAIMED) (GPIO UNCLAIMED) > pin 48 (gpio48): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio48 > pin 49 (gpio49): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio49 > pin 50 (gpio50): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio50 > pin 51 (gpio51): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio51 > pin 52 (gpio52): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio52 > pin 53 (gpio53): 3f202000.mmc (GPIO UNCLAIMED) function alt0 group gpio53 > > Output of gpioinfo: > line 0: "ID_SDA" unused input active-high > line 1: "ID_SCL" unused input active-high > line 2: "SDA1" unused input active-high > line 3: "SCL1" unused input active-high > line 4: "GPIO_GCLK" unused input active-high > line 5: "GPIO5" unused input active-high > line 6: "GPIO6" unused input active-high > line 7: "SPI_CE1_N" unused input active-high > line 8: "SPI_CE0_N" unused input active-high > line 9: "SPI_MISO" unused input active-high > line 10: "SPI_MOSI" unused input active-high > line 11: "SPI_SCLK" unused input active-high > line 12: "GPIO12" unused input active-high > line 13: "GPIO13" unused input active-high > line 14: "TXD1" unused input active-high > line 15: "RXD1" unused input active-high > line 16: "GPIO16" unused input active-high > line 17: "GPIO17" unused input active-high > line 18: "GPIO18" unused input active-high > line 19: "GPIO19" unused input active-high > line 20: "GPIO20" unused input active-high > line 21: "GPIO21" unused input active-high > line 22: "GPIO22" unused input active-high > line 23: "GPIO23" unused input active-high > line 24: "GPIO24" unused input active-high > line 25: "GPIO25" unused input active-high > line 26: "GPIO26" unused input active-high > line 27: "GPIO27" unused input active-high > line 28: unnamed unused input active-high > line 29: "LAN_RUN_BOOT" unused input active-high > line 30: "CTS0" unused input active-high > line 31: "RTS0" unused input active-high > line 32: "TXD0" unused input active-high > line 33: "RXD0" unused input active-high > line 34: "SD1_CLK" unused input active-high > line 35: "SD1_CMD" unused input active-high > line 36: "SD1_DATA0" unused input active-high > line 37: "SD1_DATA1" unused input active-high > line 38: "SD1_DATA2" unused input active-high > line 39: "SD1_DATA3" unused input active-high > line 40: "PWM0_OUT" unused input active-high > line 41: "PWM1_OUT" unused input active-high > line 42: "ETHCLK" unused input active-high > line 43: "WIFI_CLK" unused input active-high > line 44: "SDA0" unused input active-high > line 45: "SCL0" unused input active-high > line 46: "SMPS_SCL" unused input active-high > line 47: "SMPS_SDA" unused output active-high > line 48: "SD_CLK_R" unused input active-high > line 49: "SD_CMD_R" unused input active-high > line 50: "SD_DATA0_R" unused input active-high > line 51: "SD_DATA1_R" unused input active-high > line 52: "SD_DATA2_R" unused input active-high > line 53: "SD_DATA3_R" unused input active-high > > [1] - https://github.com/lategoodbye/rpi-zero/tree/bcm2835-dt-next gentle ping