Skip to content

jaj: default I2C pins to output low#42

Draft
dakejahl wants to merge 1 commit intomainfrom
jake/i2s_gpio_default_low
Draft

jaj: default I2C pins to output low#42
dakejahl wants to merge 1 commit intomainfrom
jake/i2s_gpio_default_low

Conversation

@dakejahl
Copy link
Collaborator

@dakejahl dakejahl commented Feb 17, 2026

Summary

  • Configure I2S connector GPIO pins (I2S0_SCLK, I2S0_DOUT, I2S0_DIN, I2S0_LRCLK, AUD_MCLK) to default output-low (0V) at boot via bootloader BCT
  • Previously these pins were configured as high-impedance inputs, reverting to an undefined/high state when userspace GPIO control was released

Problem

When using I2S connector pins as GPIO via libgpio, pins revert to their bootloader default state on application exit or crash. A customer reported this caused unintended 3.3V on pins that need to be 0V by default.

Changes

Pinmux BCT (tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi):

  • Set pull=NONE, tristate=DISABLE, enable-input=DISABLE on all 5 pins, configuring pads as actively driven outputs (matches existing gpio-output-low pin patterns like uart4_cts_ph6)

GPIO BCT (tegra234-mb1-bct-gpio-p3767-dp-a03.dtsi):

  • Moved H,7 / I,0 / I,1 / I,2 / AC,6 from gpio-input to gpio-output-low

Test plan

  • Re-flash board (BCT changes require full flash)
  • Verify pins are output-low at boot before any app runs (gpioinfo / /sys/kernel/debug/gpio)
  • Set pin high via GPIO app, kill app, confirm pin returns to 0V
  • Confirm ark_i2s_gpio.dts overlay still works for normal GPIO usage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant