USB HSIC nicht an I2C angeschlossen

Der USB Hub hat ein I2C Interface, dies ist aber nicht an den I2C Bus auf dem MBa7x angeschlosssen.
Hintergrund ist, daß über den I2C Bus eine Kundenspezifische Firmware in den Hub geladen werden kann,
wenn keine Daten (Firmware für den Hub vorliegt) dann bleibt dieser hängen und hat keine Funktion.
Wenn der I2C Bus nich am Hub angeschlossen ist dann initialsiert der Hub komplett.
Selbiges gilt für die Pullup Widerstände die im Schaltplan als nicht bestückt eingezeichnet sind.

GPIOs an PCA953x auf MBa7x unter U-Boot ansprechen


U-Boot 2016.03.rel_imx_4.1.15_2.0.0_ga-20170202 (Mar 20 2017 - 12:28:09 +0100)

CPU:   Freescale i.MX7D rev1.2 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 25C
Reset cause: POR
Board: TQMa7D on a MBa7
DRAM:  512 MiB
PMIC: PFUZE3000 ID=0x30 REV=0x11
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
TQMa7 EEPROM:
  unknown hardware variant
  unknown serial number
  MAC: ff:ff:ff:ff:ff:ff
Boot:   USDHC1(SD)
Net:   FEC0, FEC1
Normal Boot
Hit any key to stop autoboot:  0
=> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
bmode   - sd1|emmc|ecspi1:0|ecspi1:1|ecspi1:2|ecspi1:3|weim|qspi1|usdhc1|usdhc2|usdhc3|mmc1|mmc2|mmc3 [noreset]
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
clocks  - display clocks
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date & time
dcache  - enable or disable data cache
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
dtt     - Read temperature from Digital Thermometer and Thermostat
echo    - echo args to console
editenv - edit environment variable
eeprom  - EEPROM sub-system
env     - environment handling commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
ext4write- create a file in the root directory
false   - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt     - flattened device tree utility commands
fstype  - Look up a filesystem type
fuse    - Fuse sub-system
go      - start application at address 'addr'
gpio    - query and control gpio pins
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mdio    - MDIO utility commands
meminfo - display memory information
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtest   - simple RAM read/write test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
pca953x - pca953x gpio access
ping    - send ICMP ECHO_REQUEST to network host
pmic    - PMIC
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
sf      - SPI flash sub-system
showvar - print local hushshell variables
size    - determine a file's size
sleep   - delay execution for some time
source  - run script from memory
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
time    - run commands and summarize execution time
timer   - access the system timer
true    - do nothing, successfully
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
=> help gpio
gpio - query and control gpio pins

Usage:
gpio <input|set|clear|toggle> <pin>
    - input/set/clear/toggle the specified pin
gpio status [-a] [<bank> | <pin>]  - show [all/claimed] GPIOs
=> gpio status
Bank GPIO1_:
GPIO1_5: output: 0 [x] usb-otg1-pwr
GPIO1_7: output: 0 [x] usb-otg2-pwr
GPIO1_9: output: 1 [x] enet1-phy-intpwdn

Bank GPIO2_:
GPIO2_4: output: 1 [x] qspi-rst#
GPIO2_28: output: 1 [x] enet2-phy-rst#
GPIO2_31: output: 1 [x] enet2-phy-intpwdn

Bank GPIO4_:
GPIO4_8: input: 1 [x] i2c_scl0
GPIO4_9: input: 1 [x] i2c_sda0
GPIO4_10: input: 1 [x] i2c_scl1
GPIO4_11: input: 1 [x] i2c_sda1

Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp

Bank GPIO7_:
GPIO7_15: output: 1 [x] enet1-phy-rst#
=> gpio status -a
Bank GPIO1_:
GPIO1_0: input: 0 [ ]
GPIO1_1: input: 0 [ ]
GPIO1_2: input: 0 [ ]
GPIO1_3: input: 0 [ ]
GPIO1_4: input: 0 [ ]
GPIO1_5: output: 0 [x] usb-otg1-pwr
GPIO1_6: input: 0 [ ]
GPIO1_7: output: 0 [x] usb-otg2-pwr
GPIO1_8: input: 0 [ ]
GPIO1_9: output: 1 [x] enet1-phy-intpwdn
GPIO1_10: input: 0 [ ]
GPIO1_11: input: 0 [ ]
GPIO1_12: input: 1 [ ]
GPIO1_13: input: 0 [ ]
GPIO1_14: input: 1 [ ]
GPIO1_15: input: 0 [ ]
GPIO1_16: input: 0 [ ]
GPIO1_17: input: 0 [ ]
GPIO1_18: input: 0 [ ]
GPIO1_19: input: 0 [ ]
GPIO1_20: input: 0 [ ]
GPIO1_21: input: 0 [ ]
GPIO1_22: input: 0 [ ]
GPIO1_23: input: 0 [ ]
GPIO1_24: input: 0 [ ]
GPIO1_25: input: 0 [ ]
GPIO1_26: input: 0 [ ]
GPIO1_27: input: 0 [ ]
GPIO1_28: input: 0 [ ]
GPIO1_29: input: 0 [ ]
GPIO1_30: input: 0 [ ]
GPIO1_31: input: 0 [ ]

Bank GPIO2_:
GPIO2_0: input: 0 [ ]
GPIO2_1: input: 0 [ ]
GPIO2_2: input: 0 [ ]
GPIO2_3: input: 0 [ ]
GPIO2_4: output: 1 [x] qspi-rst#
GPIO2_5: input: 0 [ ]
GPIO2_6: input: 0 [ ]
GPIO2_7: input: 0 [ ]
GPIO2_8: input: 0 [ ]
GPIO2_9: input: 0 [ ]
GPIO2_10: input: 0 [ ]
GPIO2_11: input: 1 [ ]
GPIO2_12: input: 1 [ ]
GPIO2_13: input: 0 [ ]
GPIO2_14: input: 0 [ ]
GPIO2_15: input: 0 [ ]
GPIO2_16: input: 0 [ ]
GPIO2_17: input: 0 [ ]
GPIO2_18: input: 0 [ ]
GPIO2_19: input: 0 [ ]
GPIO2_20: input: 0 [ ]
GPIO2_21: input: 0 [ ]
GPIO2_22: input: 0 [ ]
GPIO2_23: input: 0 [ ]
GPIO2_24: input: 0 [ ]
GPIO2_25: input: 0 [ ]
GPIO2_26: input: 0 [ ]
GPIO2_27: input: 0 [ ]
GPIO2_28: output: 1 [x] enet2-phy-rst#
GPIO2_29: input: 0 [ ]
GPIO2_30: input: 0 [ ]
GPIO2_31: output: 1 [x] enet2-phy-intpwdn

Bank GPIO3_:
GPIO3_0: input: 0 [ ]
GPIO3_1: input: 0 [ ]
GPIO3_2: input: 0 [ ]
GPIO3_3: input: 0 [ ]
GPIO3_4: input: 0 [ ]
GPIO3_5: input: 0 [ ]
GPIO3_6: input: 1 [ ]
GPIO3_7: input: 0 [ ]
GPIO3_8: input: 0 [ ]
GPIO3_9: input: 1 [ ]
GPIO3_10: input: 0 [ ]
GPIO3_11: input: 0 [ ]
GPIO3_12: input: 0 [ ]
GPIO3_13: input: 0 [ ]
GPIO3_14: input: 0 [ ]
GPIO3_15: input: 0 [ ]
GPIO3_16: input: 0 [ ]
GPIO3_17: input: 1 [ ]
GPIO3_18: input: 0 [ ]
GPIO3_19: input: 0 [ ]
GPIO3_20: input: 0 [ ]
GPIO3_21: input: 0 [ ]
GPIO3_22: input: 0 [ ]
GPIO3_23: input: 0 [ ]
GPIO3_24: input: 0 [ ]
GPIO3_25: input: 0 [ ]
GPIO3_26: input: 0 [ ]
GPIO3_27: input: 0 [ ]
GPIO3_28: input: 0 [ ]
GPIO3_29: input: 0 [ ]
GPIO3_30: input: 0 [ ]
GPIO3_31: input: 0 [ ]

Bank GPIO4_:
GPIO4_0: input: 0 [ ]
GPIO4_1: input: 0 [ ]
GPIO4_2: input: 0 [ ]
GPIO4_3: input: 0 [ ]
GPIO4_4: input: 0 [ ]
GPIO4_5: input: 0 [ ]
GPIO4_6: input: 0 [ ]
GPIO4_7: input: 0 [ ]
GPIO4_8: input: 1 [x] i2c_scl0
GPIO4_9: input: 1 [x] i2c_sda0
GPIO4_10: input: 1 [x] i2c_scl1
GPIO4_11: input: 1 [x] i2c_sda1
GPIO4_12: input: 0 [ ]
GPIO4_13: input: 0 [ ]
GPIO4_14: input: 0 [ ]
GPIO4_15: input: 0 [ ]
GPIO4_16: input: 0 [ ]
GPIO4_17: input: 0 [ ]
GPIO4_18: input: 0 [ ]
GPIO4_19: input: 0 [ ]
GPIO4_20: input: 0 [ ]
GPIO4_21: input: 0 [ ]
GPIO4_22: input: 0 [ ]
GPIO4_23: input: 0 [ ]
GPIO4_24: input: 0 [ ]
GPIO4_25: input: 0 [ ]
GPIO4_26: input: 0 [ ]
GPIO4_27: input: 0 [ ]
GPIO4_28: input: 0 [ ]
GPIO4_29: input: 0 [ ]
GPIO4_30: input: 0 [ ]
GPIO4_31: input: 0 [ ]

Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp
GPIO5_2: input: 0 [ ]
GPIO5_3: input: 0 [ ]
GPIO5_4: input: 0 [ ]
GPIO5_5: input: 0 [ ]
GPIO5_6: input: 0 [ ]
GPIO5_7: input: 0 [ ]
GPIO5_8: input: 0 [ ]
GPIO5_9: input: 0 [ ]
GPIO5_10: input: 0 [ ]
GPIO5_11: input: 1 [ ]
GPIO5_12: input: 0 [ ]
GPIO5_13: input: 1 [ ]
GPIO5_14: input: 0 [ ]
GPIO5_15: input: 1 [ ]
GPIO5_16: input: 0 [ ]
GPIO5_17: input: 1 [ ]
GPIO5_18: input: 0 [ ]
GPIO5_19: input: 0 [ ]
GPIO5_20: input: 0 [ ]
GPIO5_21: input: 0 [ ]
GPIO5_22: input: 0 [ ]
GPIO5_23: input: 0 [ ]
GPIO5_24: input: 0 [ ]
GPIO5_25: input: 0 [ ]
GPIO5_26: input: 0 [ ]
GPIO5_27: input: 0 [ ]
GPIO5_28: input: 0 [ ]
GPIO5_29: input: 0 [ ]
GPIO5_30: input: 0 [ ]
GPIO5_31: input: 0 [ ]

Bank GPIO6_:
GPIO6_0: input: 0 [ ]
GPIO6_1: input: 0 [ ]
GPIO6_2: input: 0 [ ]
GPIO6_3: input: 0 [ ]
GPIO6_4: input: 0 [ ]
GPIO6_5: input: 0 [ ]
GPIO6_6: input: 0 [ ]
GPIO6_7: input: 0 [ ]
GPIO6_8: input: 0 [ ]
GPIO6_9: input: 0 [ ]
GPIO6_10: input: 0 [ ]
GPIO6_11: input: 0 [ ]
GPIO6_12: input: 0 [ ]
GPIO6_13: input: 0 [ ]
GPIO6_14: input: 0 [ ]
GPIO6_15: input: 0 [ ]
GPIO6_16: input: 0 [ ]
GPIO6_17: input: 0 [ ]
GPIO6_18: input: 0 [ ]
GPIO6_19: input: 0 [ ]
GPIO6_20: input: 0 [ ]
GPIO6_21: input: 0 [ ]
GPIO6_22: input: 0 [ ]
GPIO6_23: input: 0 [ ]
GPIO6_24: input: 0 [ ]
GPIO6_25: input: 0 [ ]
GPIO6_26: input: 0 [ ]
GPIO6_27: input: 0 [ ]
GPIO6_28: input: 0 [ ]
GPIO6_29: input: 0 [ ]
GPIO6_30: input: 0 [ ]
GPIO6_31: input: 0 [ ]

Bank GPIO7_:
GPIO7_0: input: 0 [ ]
GPIO7_1: input: 0 [ ]
GPIO7_2: input: 0 [ ]
GPIO7_3: input: 0 [ ]
GPIO7_4: input: 0 [ ]
GPIO7_5: input: 0 [ ]
GPIO7_6: input: 0 [ ]
GPIO7_7: input: 0 [ ]
GPIO7_8: input: 0 [ ]
GPIO7_9: input: 0 [ ]
GPIO7_10: input: 0 [ ]
GPIO7_11: input: 0 [ ]
GPIO7_12: input: 1 [ ]
GPIO7_13: input: 0 [ ]
GPIO7_14: input: 0 [ ]
GPIO7_15: output: 1 [x] enet1-phy-rst#
GPIO7_16: input: 0 [ ]
GPIO7_17: input: 0 [ ]
GPIO7_18: input: 0 [ ]
GPIO7_19: input: 0 [ ]
GPIO7_20: input: 0 [ ]
GPIO7_21: input: 0 [ ]
GPIO7_22: input: 0 [ ]
GPIO7_23: input: 0 [ ]
GPIO7_24: input: 0 [ ]
GPIO7_25: input: 0 [ ]
GPIO7_26: input: 0 [ ]
GPIO7_27: input: 0 [ ]
GPIO7_28: input: 0 [ ]
GPIO7_29: input: 0 [ ]
GPIO7_30: input: 0 [ ]
GPIO7_31: input: 0 [ ]
=> pca953x
pca953x - pca953x gpio access

Usage:
pca953x device [dev]
        - show or set current device address
pca953x info
        - display info for current chip
pca953x output pin 0|1
        - set pin as output and drive low or high
pca953x invert pin 0|1
        - disable/enable polarity inversion for reads
pca953x input pin
        - set pin as input and read value
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
Error talking to chip at 0x20
=> pca953x device
Current device address: 0x20
=> i2c
i2c - I2C sub-system

Usage:
i2c bus [muxtype:muxaddr:muxchannel] - show I2C bus info
crc32 chip address[.0, .1, .2] count - compute CRC32 checksum
i2c dev [dev] - show or set current I2C bus
i2c loop chip address[.0, .1, .2] [# of objects] - looping read of device
i2c md chip address[.0, .1, .2] [# of objects] - read from I2C device
i2c mm chip address[.0, .1, .2] - write to I2C device (auto-incrementing)
i2c mw chip address[.0, .1, .2] value [count] - write to I2C device (fill)
i2c nm chip address[.0, .1, .2] - write to I2C device (constant address)
i2c probe [address] - test for and show device(s) on the I2C bus
i2c read chip address[.0, .1, .2] length memaddress - read to memory
i2c write memaddress chip address[.0, .1, .2] length [-s] - write memory
          to I2C; the -s option selects bulk write in a single transaction
i2c reset - re-init the I2C Controller
i2c speed [speed] - show or set I2C bus speed
=> i2c bus
Bus 0:  mxc0
Bus 1:  mxc1
=> i2c dev
Current bus is 0
=> i2c probe
Valid chip addresses: 08 48 49 50 68
=> i2c dev 1
Setting bus to 1
=> i2c probe
Valid chip addresses: 18 20
=> pca953x
pca953x - pca953x gpio access

Usage:
pca953x device [dev]
        - show or set current device address
pca953x info
        - display info for current chip
pca953x output pin 0|1
        - set pin as output and drive low or high
pca953x invert pin 0|1
        - disable/enable polarity inversion for reads
pca953x input pin
        - set pin as input and read value
=> pca953x device
Current device address: 0x20
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
conf:      iiiooooooooooooo
invert:    0000000000000000
input:     1111010000000000
output:    1111010000000000
=> pca953x output 11 1
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
conf:      iiiooooooooooooo
invert:    0000000000000000
input:     1111010000000000
output:    1111010000000000
=> gpio
gpio - query and control gpio pins

Usage:
gpio <input|set|clear|toggle> <pin>
    - input/set/clear/toggle the specified pin
gpio status [-a] [<bank> | <pin>]  - show [all/claimed] GPIOs
=> gpio status
Bank GPIO1_:
GPIO1_5: output: 0 [x] usb-otg1-pwr
GPIO1_7: output: 0 [x] usb-otg2-pwr
GPIO1_9: output: 1 [x] enet1-phy-intpwdn

Bank GPIO2_:
GPIO2_4: output: 1 [x] qspi-rst#
GPIO2_28: output: 1 [x] enet2-phy-rst#
GPIO2_31: output: 1 [x] enet2-phy-intpwdn

Bank GPIO4_:
GPIO4_8: input: 1 [x] i2c_scl0
GPIO4_9: input: 1 [x] i2c_sda0
GPIO4_10: input: 1 [x] i2c_scl1
GPIO4_11: input: 1 [x] i2c_sda1

Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp

Bank GPIO7_:
GPIO7_15: output: 1 [x] enet1-phy-rst#
=> gpio status 0
=> gpio status 1
=> gpio status GPIO5
=> gpio status GPIO5_
Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
conf:      iiiooooooooooooo
invert:    0000000000000000
input:     1111010000000000
output:    1111010000000000
=> pca953x
pca953x - pca953x gpio access

Usage:
pca953x device [dev]
        - show or set current device address
pca953x info
        - display info for current chip
pca953x output pin 0|1
        - set pin as output and drive low or high
pca953x invert pin 0|1
        - disable/enable polarity inversion for reads
pca953x input pin
        - set pin as input and read value
=> pca953x output 0 1
=> pca953x output 0 0
=> pca953x output 11 1
=> pca953x output 11 0
=> pca953x output B 1
=> pca953x output B 0
=>
=> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
bmode   - sd1|emmc|ecspi1:0|ecspi1:1|ecspi1:2|ecspi1:3|weim|qspi1|usdhc1|usdhc2|usdhc3|mmc1|mmc2|mmc3 [noreset]
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
clocks  - display clocks
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date & time
dcache  - enable or disable data cache
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
dtt     - Read temperature from Digital Thermometer and Thermostat
echo    - echo args to console
editenv - edit environment variable
eeprom  - EEPROM sub-system
env     - environment handling commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
ext4write- create a file in the root directory
false   - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt     - flattened device tree utility commands
fstype  - Look up a filesystem type
fuse    - Fuse sub-system
go      - start application at address 'addr'
gpio    - query and control gpio pins
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mdio    - MDIO utility commands
meminfo - display memory information
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtest   - simple RAM read/write test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
pca953x - pca953x gpio access
ping    - send ICMP ECHO_REQUEST to network host
pmic    - PMIC
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
sf      - SPI flash sub-system
showvar - print local hushshell variables
size    - determine a file's size
sleep   - delay execution for some time
source  - run script from memory
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
time    - run commands and summarize execution time
timer   - access the system timer
true    - do nothing, successfully
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
=> help gpio
gpio - query and control gpio pins

Usage:
gpio <input|set|clear|toggle> <pin>
    - input/set/clear/toggle the specified pin
gpio status [-a] [<bank> | <pin>]  - show [all/claimed] GPIOs
=> gpio status
Bank GPIO1_:
GPIO1_5: output: 0 [x] usb-otg1-pwr
GPIO1_7: output: 0 [x] usb-otg2-pwr
GPIO1_9: output: 1 [x] enet1-phy-intpwdn

Bank GPIO2_:
GPIO2_4: output: 1 [x] qspi-rst#
GPIO2_28: output: 1 [x] enet2-phy-rst#
GPIO2_31: output: 1 [x] enet2-phy-intpwdn

Bank GPIO4_:
GPIO4_8: input: 1 [x] i2c_scl0
GPIO4_9: input: 1 [x] i2c_sda0
GPIO4_10: input: 1 [x] i2c_scl1
GPIO4_11: input: 1 [x] i2c_sda1

Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp

Bank GPIO7_:
GPIO7_15: output: 1 [x] enet1-phy-rst#
=> gpio status -a
Bank GPIO1_:
GPIO1_0: input: 0 [ ]
GPIO1_1: input: 0 [ ]
GPIO1_2: input: 0 [ ]
GPIO1_3: input: 0 [ ]
GPIO1_4: input: 0 [ ]
GPIO1_5: output: 0 [x] usb-otg1-pwr
GPIO1_6: input: 0 [ ]
GPIO1_7: output: 0 [x] usb-otg2-pwr
GPIO1_8: input: 0 [ ]
GPIO1_9: output: 1 [x] enet1-phy-intpwdn
GPIO1_10: input: 0 [ ]
GPIO1_11: input: 0 [ ]
GPIO1_12: input: 1 [ ]
GPIO1_13: input: 0 [ ]
GPIO1_14: input: 1 [ ]
GPIO1_15: input: 0 [ ]
GPIO1_16: input: 0 [ ]
GPIO1_17: input: 0 [ ]
GPIO1_18: input: 0 [ ]
GPIO1_19: input: 0 [ ]
GPIO1_20: input: 0 [ ]
GPIO1_21: input: 0 [ ]
GPIO1_22: input: 0 [ ]
GPIO1_23: input: 0 [ ]
GPIO1_24: input: 0 [ ]
GPIO1_25: input: 0 [ ]
GPIO1_26: input: 0 [ ]
GPIO1_27: input: 0 [ ]
GPIO1_28: input: 0 [ ]
GPIO1_29: input: 0 [ ]
GPIO1_30: input: 0 [ ]
GPIO1_31: input: 0 [ ]

Bank GPIO2_:
GPIO2_0: input: 0 [ ]
GPIO2_1: input: 0 [ ]
GPIO2_2: input: 0 [ ]
GPIO2_3: input: 0 [ ]
GPIO2_4: output: 1 [x] qspi-rst#
GPIO2_5: input: 0 [ ]
GPIO2_6: input: 0 [ ]
GPIO2_7: input: 0 [ ]
GPIO2_8: input: 0 [ ]
GPIO2_9: input: 0 [ ]
GPIO2_10: input: 0 [ ]
GPIO2_11: input: 1 [ ]
GPIO2_12: input: 1 [ ]
GPIO2_13: input: 0 [ ]
GPIO2_14: input: 0 [ ]
GPIO2_15: input: 0 [ ]
GPIO2_16: input: 0 [ ]
GPIO2_17: input: 0 [ ]
GPIO2_18: input: 0 [ ]
GPIO2_19: input: 0 [ ]
GPIO2_20: input: 0 [ ]
GPIO2_21: input: 0 [ ]
GPIO2_22: input: 0 [ ]
GPIO2_23: input: 0 [ ]
GPIO2_24: input: 0 [ ]
GPIO2_25: input: 0 [ ]
GPIO2_26: input: 0 [ ]
GPIO2_27: input: 0 [ ]
GPIO2_28: output: 1 [x] enet2-phy-rst#
GPIO2_29: input: 0 [ ]
GPIO2_30: input: 0 [ ]
GPIO2_31: output: 1 [x] enet2-phy-intpwdn

Bank GPIO3_:
GPIO3_0: input: 0 [ ]
GPIO3_1: input: 0 [ ]
GPIO3_2: input: 0 [ ]
GPIO3_3: input: 0 [ ]
GPIO3_4: input: 0 [ ]
GPIO3_5: input: 0 [ ]
GPIO3_6: input: 1 [ ]
GPIO3_7: input: 0 [ ]
GPIO3_8: input: 0 [ ]
GPIO3_9: input: 1 [ ]
GPIO3_10: input: 0 [ ]
GPIO3_11: input: 0 [ ]
GPIO3_12: input: 0 [ ]
GPIO3_13: input: 0 [ ]
GPIO3_14: input: 0 [ ]
GPIO3_15: input: 0 [ ]
GPIO3_16: input: 0 [ ]
GPIO3_17: input: 1 [ ]
GPIO3_18: input: 0 [ ]
GPIO3_19: input: 0 [ ]
GPIO3_20: input: 0 [ ]
GPIO3_21: input: 0 [ ]
GPIO3_22: input: 0 [ ]
GPIO3_23: input: 0 [ ]
GPIO3_24: input: 0 [ ]
GPIO3_25: input: 0 [ ]
GPIO3_26: input: 0 [ ]
GPIO3_27: input: 0 [ ]
GPIO3_28: input: 0 [ ]
GPIO3_29: input: 0 [ ]
GPIO3_30: input: 0 [ ]
GPIO3_31: input: 0 [ ]

Bank GPIO4_:
GPIO4_0: input: 0 [ ]
GPIO4_1: input: 0 [ ]
GPIO4_2: input: 0 [ ]
GPIO4_3: input: 0 [ ]
GPIO4_4: input: 0 [ ]
GPIO4_5: input: 0 [ ]
GPIO4_6: input: 0 [ ]
GPIO4_7: input: 0 [ ]
GPIO4_8: input: 1 [x] i2c_scl0
GPIO4_9: input: 1 [x] i2c_sda0
GPIO4_10: input: 1 [x] i2c_scl1
GPIO4_11: input: 1 [x] i2c_sda1
GPIO4_12: input: 0 [ ]
GPIO4_13: input: 0 [ ]
GPIO4_14: input: 0 [ ]
GPIO4_15: input: 0 [ ]
GPIO4_16: input: 0 [ ]
GPIO4_17: input: 0 [ ]
GPIO4_18: input: 0 [ ]
GPIO4_19: input: 0 [ ]
GPIO4_20: input: 0 [ ]
GPIO4_21: input: 0 [ ]
GPIO4_22: input: 0 [ ]
GPIO4_23: input: 0 [ ]
GPIO4_24: input: 0 [ ]
GPIO4_25: input: 0 [ ]
GPIO4_26: input: 0 [ ]
GPIO4_27: input: 0 [ ]
GPIO4_28: input: 0 [ ]
GPIO4_29: input: 0 [ ]
GPIO4_30: input: 0 [ ]
GPIO4_31: input: 0 [ ]

Bank GPIO5_:
GPIO5_0: input: 0 [x] usdhc1-cd
GPIO5_1: input: 0 [x] usdhc1-wp
GPIO5_2: input: 0 [ ]
GPIO5_3: input: 0 [ ]
GPIO5_4: input: 0 [ ]
GPIO5_5: input: 0 [ ]
GPIO5_6: input: 0 [ ]
GPIO5_7: input: 0 [ ]
GPIO5_8: input: 0 [ ]
GPIO5_9: input: 0 [ ]
GPIO5_10: input: 0 [ ]
GPIO5_11: input: 1 [ ]
GPIO5_12: input: 0 [ ]
GPIO5_13: input: 1 [ ]
GPIO5_14: input: 0 [ ]
GPIO5_15: input: 1 [ ]
GPIO5_16: input: 0 [ ]
GPIO5_17: input: 1 [ ]
GPIO5_18: input: 0 [ ]
GPIO5_19: input: 0 [ ]
GPIO5_20: input: 0 [ ]
GPIO5_21: input: 0 [ ]
GPIO5_22: input: 0 [ ]
GPIO5_23: input: 0 [ ]
GPIO5_24: input: 0 [ ]
GPIO5_25: input: 0 [ ]
GPIO5_26: input: 0 [ ]
GPIO5_27: input: 0 [ ]
GPIO5_28: input: 0 [ ]
GPIO5_29: input: 0 [ ]
GPIO5_30: input: 0 [ ]
GPIO5_31: input: 0 [ ]

Bank GPIO6_:
GPIO6_0: input: 0 [ ]
GPIO6_1: input: 0 [ ]
GPIO6_2: input: 0 [ ]
GPIO6_3: input: 0 [ ]
GPIO6_4: input: 0 [ ]
GPIO6_5: input: 0 [ ]
GPIO6_6: input: 0 [ ]
GPIO6_7: input: 0 [ ]
GPIO6_8: input: 0 [ ]
GPIO6_9: input: 0 [ ]
GPIO6_10: input: 0 [ ]
GPIO6_11: input: 0 [ ]
GPIO6_12: input: 0 [ ]
GPIO6_13: input: 0 [ ]
GPIO6_14: input: 0 [ ]
GPIO6_15: input: 0 [ ]
GPIO6_16: input: 0 [ ]
GPIO6_17: input: 0 [ ]
GPIO6_18: input: 0 [ ]
GPIO6_19: input: 0 [ ]
GPIO6_20: input: 0 [ ]
GPIO6_21: input: 0 [ ]
GPIO6_22: input: 0 [ ]
GPIO6_23: input: 0 [ ]
GPIO6_24: input: 0 [ ]
GPIO6_25: input: 0 [ ]
GPIO6_26: input: 0 [ ]
GPIO6_27: input: 0 [ ]
GPIO6_28: input: 0 [ ]
GPIO6_29: input: 0 [ ]
GPIO6_30: input: 0 [ ]
GPIO6_31: input: 0 [ ]

Bank GPIO7_:
GPIO7_0: input: 0 [ ]
GPIO7_1: input: 0 [ ]
GPIO7_2: input: 0 [ ]
GPIO7_3: input: 0 [ ]
GPIO7_4: input: 0 [ ]
GPIO7_5: input: 0 [ ]
GPIO7_6: input: 0 [ ]
GPIO7_7: input: 0 [ ]
GPIO7_8: input: 0 [ ]
GPIO7_9: input: 0 [ ]
GPIO7_10: input: 0 [ ]
GPIO7_11: input: 0 [ ]
GPIO7_12: input: 1 [ ]
GPIO7_13: input: 0 [ ]
GPIO7_14: input: 0 [ ]
GPIO7_15: output: 1 [x] enet1-phy-rst#
GPIO7_16: input: 0 [ ]
GPIO7_17: input: 0 [ ]
GPIO7_18: input: 0 [ ]
GPIO7_19: input: 0 [ ]
GPIO7_20: input: 0 [ ]
GPIO7_21: input: 0 [ ]
GPIO7_22: input: 0 [ ]
GPIO7_23: input: 0 [ ]
GPIO7_24: input: 0 [ ]
GPIO7_25: input: 0 [ ]
GPIO7_26: input: 0 [ ]
GPIO7_27: input: 0 [ ]
GPIO7_28: input: 0 [ ]
GPIO7_29: input: 0 [ ]
GPIO7_30: input: 0 [ ]
GPIO7_31: input: 0 [ ]
=> i2c dev
Current bus is 1
=> i2c dev 0
Setting bus to 0
=> i2c probe
Valid chip addresses: 08 48 49 50 68
=> pca953x
pca953x - pca953x gpio access

Usage:
pca953x device [dev]
        - show or set current device address
pca953x info
        - display info for current chip
pca953x output pin 0|1
        - set pin as output and drive low or high
pca953x invert pin 0|1
        - disable/enable polarity inversion for reads
pca953x input pin
        - set pin as input and read value
=> pca953x device
Current device address: 0x20
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
Error talking to chip at 0x20
=> ic2 dev 1
Unknown command 'ic2' - try 'help'
=> i2c dev 1
Setting bus to 1
=> i2c probe
Valid chip addresses: 18 20
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
conf:      iiiooooooooooooo
invert:    0000000000000000
input:     1111010000000000
output:    1111010000000000
=> pca953x output 0xB 1
=> pca953x info
pca953x@ 0x20 (16 pins):

gpio pins: fedcba9876543210
---------------------------
conf:      iiiooooooooooooo
invert:    0000000000000000
input:     1111110000000000
output:    1111110000000000
=> pca953x output 0xB 0
=> pca953x output 0x0 1
=> pca953x output 0x0 0
=>