config-pin i2c not working

I’m using the i2c bus 2 that appears on P9_21 and P9_22 on the Bone Black.

If I run:
bone$ config-pin P9_21 i2c
bone$ config-pin P9_22 i2c

My i2c bus doesn’t work, but if I run:

bone$ config-pin P9_21 gpio
bone$ config-pin P9_22 gpio

it does? What’s up?

–Mark

sudo /opt/scripts/tools/version.sh
[sudo] password for debian:
git:/opt/scripts/:[ed7dd4c61a9c9307b08db8a7dcbaffac77a7f776]
eeprom:[A335BNLT0A5C3513BBBK3281]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-07-02]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.03-00002-gac9cce7c6a]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2016.03-00001-g9a81f4a]:[location: dd MBR]
kernel:[4.18.1-bone4]
nodejs:[v6.14.3]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-cape-overlays]:[4.4.20180628.0-0rcnee0~stretch+20180628]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[roboticscape]:[0.4.4-git20180608.0-0rcnee0~stretch+20180609]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 1.368684] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[ 1.398397] gpio-of-helper ocp:cape-universal: ready
END

Mark:

That bus is configured by default, so you should not have to configure it to use it.
It is the bus used to probe for and talk to the memory chip on equipped capes.
Try using the I2C-2 bus without configuration. It should just work.

— Graham

Graham:
Yes, it works without configuring, but why does it stop working when configured to be i2c? And why does it start working when configured to be gpio? That’s the opposite of what I’d expect.

–Mark

Mark:

Well, I suspect it would take a deep dive into the drivers to answer that.

I agree with what you would expect, but there is software involved.

I obviously does not like to be configured twice?
The configuration depends on some assumed initial states that are no longer true when it has already been configured?

I am not knowing.

— Graham