[x] The code changes are reflected in the documentation at docs/*.
pin_bit_mask in i2c_sw_master.c is a 64bit value and the current code shifts an int sized 1, so doesn't work for any pin numbers >= 32 because it's only shifting a 32-bit value. The upshot is software i2c doesn't work (on the default pins) on esp32s2 and later and probably some others too.
This change fixes that, by using a 64-bit 1 meaning the pin_bit_mask gets correctly set even for pin numbers above 32.
Tested on adafruit feather esp32s2 using pins 41 and 42 (Sda and Scl)
dev
branch rather than for therelease
branch.docs/*
.pin_bit_mask
in i2c_sw_master.c is a 64bit value and the current code shifts anint
sized1
, so doesn't work for any pin numbers >= 32 because it's only shifting a 32-bit value. The upshot is software i2c doesn't work (on the default pins) on esp32s2and laterand probably some others too.This change fixes that, by using a 64-bit
1
meaning thepin_bit_mask
gets correctly set even for pin numbers above 32.Tested on adafruit feather esp32s2 using pins 41 and 42 (Sda and Scl)