I just found an error in my overlay. I was setting the i2c2 pins to the wrong pins. But my bus analyzer and CODEC were on pins P9_19 & 20, and kept seeing traffic there. It seems to just ignore my pinmuxing. I even corrected the GPIO address, but forgot to set the mode, and it's still working. It's very confusing. It really does seem to just be ignoring it.
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <
0x150 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2) // P9_22, spi0_scl.i2c2_sda
0x154 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2) // P9_21, spi0_d0.i2c2_scl
>;
};
};
};
fragment@4 {
target = <&i2c2>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
tlv320aic3104: tlv320aic3104@0 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3104";
reg = <0x18>;
gpio-reset = <&gpio1 19 GPIO_ACTIVE_LOW>;
AVDD-supply = <&lz_codec_reg>;
IOVDD-supply = <&lz_codec_reg>;
DRVDD-supply = <&lz_codec_reg>;
DVDD-supply = <&lz_codec_reg>;
};
};
};