aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2021-09-12 15:41:33 +0100
committerGitHub <noreply@github.com>2021-09-12 15:41:33 +0100
commit0fa217a5b7cdd035105387fd31c506fda4cfb945 (patch)
tree1ba0df8f6cb8462fcc3517f7a090ad7c72123038
parentbb841087bbd47b0be6dffafa8a4f7a361867f71d (diff)
downloadqmk_firmware-0fa217a5b7cdd035105387fd31c506fda4cfb945.tar.gz
qmk_firmware-0fa217a5b7cdd035105387fd31c506fda4cfb945.zip
Align ChibiOS I2C defs with other drivers (#14399)
* Align ChibiOS I2C defs with other drivers * Update keyboards/xelus/valor_frl_tkl/config.h Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--docs/i2c_driver.md17
-rw-r--r--docs/ja/i2c_driver.md11
-rwxr-xr-xkeyboards/aeboards/constellation/rev2/config.h4
-rw-r--r--keyboards/aeboards/ext65/rev2/config.h4
-rw-r--r--keyboards/cannonkeys/satisfaction75/config.h5
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/config.h4
-rw-r--r--keyboards/dekunukem/duckypad/config.h4
-rw-r--r--keyboards/ergodox_infinity/config.h5
-rw-r--r--keyboards/ez_maker/directpins/teensy_32/config.h4
-rw-r--r--keyboards/ez_maker/directpins/teensy_lc/config.h4
-rw-r--r--keyboards/ferris/0_2/config.h6
-rw-r--r--keyboards/ferris/0_2/matrix.c5
-rw-r--r--keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c2
-rw-r--r--keyboards/handwired/onekey/teensy_32/config.h4
-rw-r--r--keyboards/handwired/onekey/teensy_lc/config.h4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h6
-rw-r--r--keyboards/matrix/m20add/config.h4
-rw-r--r--keyboards/matrix/m20add/m20add.c8
-rw-r--r--keyboards/matrix/noah/config.h4
-rw-r--r--keyboards/whitefox/config.h5
-rw-r--r--keyboards/xelus/kangaroo/config.h4
-rw-r--r--keyboards/xelus/pachi/rgb/config.h4
-rw-r--r--keyboards/xelus/valor/rev2/config.h4
-rw-r--r--keyboards/xelus/valor_frl_tkl/config.h4
-rw-r--r--platforms/chibios/drivers/i2c_master.c12
-rw-r--r--platforms/chibios/drivers/i2c_master.h21
26 files changed, 64 insertions, 95 deletions
diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md
index 3ec34a0f8..9017b44ed 100644
--- a/docs/i2c_driver.md
+++ b/docs/i2c_driver.md
@@ -62,16 +62,13 @@ Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, fo
62 62
63Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. 63Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
64 64
65|`config.h` Overrride |Description |Default| 65|`config.h` Overrride |Description |Default|
66|------------------------|-------------------------------------------------------------------------------------------|-------| 66|------------------------|--------------------------------------------------------------|-------|
67|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`| 67|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`|
68|`I2C1_BANK` (deprecated)|The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superseded by `I2C1_SCL_BANK`/`I2C1_SDA_BANK`|`GPIOB`| 68|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` |
69|`I2C1_SCL_BANK` |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL |`GPIOB`| 69|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` |
70|`I2C1_SCL` |The pin number for SCL (0-15) |`6` | 70|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` |
71|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` | 71|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` |
72|`I2C1_SDA_BANK` |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA |`GPIOB`|
73|`I2C1_SDA` |The pin number for SDA (0-15) |`7` |
74|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` |
75 72
76The following configuration values depend on the specific MCU in use. 73The following configuration values depend on the specific MCU in use.
77 74
diff --git a/docs/ja/i2c_driver.md b/docs/ja/i2c_driver.md
index 9d348d580..1d8f70e16 100644
--- a/docs/ja/i2c_driver.md
+++ b/docs/ja/i2c_driver.md
@@ -79,13 +79,10 @@ ARM MCU 用の設定はしばしば非常に複雑です。これは、多くの
79 79
80STM32 MCU では、使用するハードウェアドライバにより、さまざまなピンを I2C ピンとして設定できます。標準では `B6`, `B7` ピンが I2C 用のピンです。 I2C 用のピンを設定するために次の定義が使えます: 80STM32 MCU では、使用するハードウェアドライバにより、さまざまなピンを I2C ピンとして設定できます。標準では `B6`, `B7` ピンが I2C 用のピンです。 I2C 用のピンを設定するために次の定義が使えます:
81 81
82| 変数 | 説明 | 既定値 | 82| 変数 | 説明 | 既定値 |
83|-----------------------|--------------------------------------------------------------------------------------------------|---------| 83|-----------------------|-------------------------------------------------------------------------------------------|---------|
84| `I2C1_SCL_BANK` | SCL に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` | 84| `I2C1_SCL_PIN` | SCL のピン番号 | `B6` |
85| `I2C1_SDA_BANK` | SDA に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` | 85| `I2C1_SDA_PIN` | SDA のピン番号 | `B7` |
86| `I2C1_SCL` | SCL のピン番号 (0-15) | `6` |
87| `I2C1_SDA` | SDA のピン番号 (0-15) | `7` |
88| `I2C1_BANK`(非推奨) | 使用するピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)。後継は `I2C1_SCL_BANK`, `I2C1_SDA_BANK` です。 | `GPIOB` |
89 86
90ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。 87ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。
91 88
diff --git a/keyboards/aeboards/constellation/rev2/config.h b/keyboards/aeboards/constellation/rev2/config.h
index 0780c9bf9..de42885b4 100755
--- a/keyboards/aeboards/constellation/rev2/config.h
+++ b/keyboards/aeboards/constellation/rev2/config.h
@@ -47,8 +47,8 @@
47#define LOCKING_RESYNC_ENABLE 47#define LOCKING_RESYNC_ENABLE
48 48
49// I2C setup 49// I2C setup
50#define I2C1_SCL 8 50#define I2C1_SCL_PIN B8
51#define I2C1_SDA 9 51#define I2C1_SDA_PIN B9
52#define I2C1_SCL_PAL_MODE 4 52#define I2C1_SCL_PAL_MODE 4
53#define I2C1_SDA_PAL_MODE 4 53#define I2C1_SDA_PAL_MODE 4
54#define I2C1_TIMINGR_PRESC 0U 54#define I2C1_TIMINGR_PRESC 0U
diff --git a/keyboards/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h
index 778fc3ea6..498e345ad 100644
--- a/keyboards/aeboards/ext65/rev2/config.h
+++ b/keyboards/aeboards/ext65/rev2/config.h
@@ -56,8 +56,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
56#define WS2812_EXTERNAL_PULLUP 56#define WS2812_EXTERNAL_PULLUP
57 57
58// I2C OLED defines 58// I2C OLED defines
59#define I2C1_SCL 8 59#define I2C1_SCL_PIN B8
60#define I2C1_SDA 9 60#define I2C1_SDA_PIN B9
61 61
62#define I2C1_SCL_PAL_MODE 1 62#define I2C1_SCL_PAL_MODE 1
63#define I2C1_SDA_PAL_MODE 1 63#define I2C1_SDA_PAL_MODE 1
diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h
index e100cc99b..43a872041 100644
--- a/keyboards/cannonkeys/satisfaction75/config.h
+++ b/keyboards/cannonkeys/satisfaction75/config.h
@@ -53,9 +53,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
53 53
54// I2C config 54// I2C config
55#define I2C_DRIVER I2CD1 55#define I2C_DRIVER I2CD1
56#define I2C1_SCL_BANK GPIOB 56#define I2C1_SCL_PIN B6
57#define I2C1_SCL 6 57#define I2C1_SDA_PIN B7
58#define I2C1_SDA 7
59#define I2C1_SCL_PAL_MODE 1 58#define I2C1_SCL_PAL_MODE 1
60#define I2C1_SDA_PAL_MODE 1 59#define I2C1_SDA_PAL_MODE 1
61#define I2C1_TIMINGR_PRESC 0x00U 60#define I2C1_TIMINGR_PRESC 0x00U
diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h
index 7e53e0a01..a6205b27b 100644
--- a/keyboards/clueboard/66_hotswap/gen1/config.h
+++ b/keyboards/clueboard/66_hotswap/gen1/config.h
@@ -77,8 +77,8 @@
77// 0b1110101 AD <-> SCL 77// 0b1110101 AD <-> SCL
78// 0b1110110 AD <-> SDA 78// 0b1110110 AD <-> SDA
79#define LED_DRIVER_ADDR_1 0b1110100 79#define LED_DRIVER_ADDR_1 0b1110100
80#define I2C1_SCL 8 80#define I2C1_SCL_PIN B8
81#define I2C1_SDA 9 81#define I2C1_SDA_PIN B9
82 82
83#define LED_DRIVER_COUNT 1 83#define LED_DRIVER_COUNT 1
84#define DRIVER_LED_TOTAL 71 84#define DRIVER_LED_TOTAL 71
diff --git a/keyboards/dekunukem/duckypad/config.h b/keyboards/dekunukem/duckypad/config.h
index 2f1b2ef32..59c682666 100644
--- a/keyboards/dekunukem/duckypad/config.h
+++ b/keyboards/dekunukem/duckypad/config.h
@@ -46,8 +46,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46 46
47#endif 47#endif
48 48
49#define I2C1_SCL 8 49#define I2C1_SCL_PIN B8
50#define I2C1_SDA 9 50#define I2C1_SDA_PIN B9
51 51
52#define I2C1_SCL_PAL_MODE 1 52#define I2C1_SCL_PAL_MODE 1
53#define I2C1_SDA_PAL_MODE 1 53#define I2C1_SDA_PAL_MODE 1
diff --git a/keyboards/ergodox_infinity/config.h b/keyboards/ergodox_infinity/config.h
index fb6f30d45..357ddf6c5 100644
--- a/keyboards/ergodox_infinity/config.h
+++ b/keyboards/ergodox_infinity/config.h
@@ -83,9 +83,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
83#define I2C1_CLOCK_SPEED 400000 83#define I2C1_CLOCK_SPEED 400000
84#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 84#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
85#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 85#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
86#define I2C1_BANK GPIOB 86#define I2C1_SCL_PIN B0
87#define I2C1_SCL 0 87#define I2C1_SDA_PIN B1
88#define I2C1_SDA 1
89 88
90#ifdef ST7565_ENABLE 89#ifdef ST7565_ENABLE
91/* LCD driver */ 90/* LCD driver */
diff --git a/keyboards/ez_maker/directpins/teensy_32/config.h b/keyboards/ez_maker/directpins/teensy_32/config.h
index 861ae70e4..c487a84ab 100644
--- a/keyboards/ez_maker/directpins/teensy_32/config.h
+++ b/keyboards/ez_maker/directpins/teensy_32/config.h
@@ -17,7 +17,7 @@
17#pragma once 17#pragma once
18 18
19// i2c_master defines 19// i2c_master defines
20#define I2C1_SCL 0 // A2 on pinout = B0 20#define I2C1_SCL_PIN B0 // A2 on pinout = B0
21#define I2C1_SDA 1 // A3 on pinout = B1 21#define I2C1_SDA_PIN B1 // A3 on pinout = B1
22#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 22#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
23#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 23#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
diff --git a/keyboards/ez_maker/directpins/teensy_lc/config.h b/keyboards/ez_maker/directpins/teensy_lc/config.h
index 861ae70e4..c487a84ab 100644
--- a/keyboards/ez_maker/directpins/teensy_lc/config.h
+++ b/keyboards/ez_maker/directpins/teensy_lc/config.h
@@ -17,7 +17,7 @@
17#pragma once 17#pragma once
18 18
19// i2c_master defines 19// i2c_master defines
20#define I2C1_SCL 0 // A2 on pinout = B0 20#define I2C1_SCL_PIN B0 // A2 on pinout = B0
21#define I2C1_SDA 1 // A3 on pinout = B1 21#define I2C1_SDA_PIN B1 // A3 on pinout = B1
22#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 22#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
23#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 23#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
diff --git a/keyboards/ferris/0_2/config.h b/keyboards/ferris/0_2/config.h
index 89eac7ed1..f51e5dd8f 100644
--- a/keyboards/ferris/0_2/config.h
+++ b/keyboards/ferris/0_2/config.h
@@ -67,10 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
67/* i2c settings */ 67/* i2c settings */
68 68
69#define I2C_DRIVER I2CD2 69#define I2C_DRIVER I2CD2
70#define I2C1_SCL_BANK GPIOB 70#define I2C1_SCL_PIN B10
71#define I2C1_SCL 10 71#define I2C1_SDA_PIN B11
72#define I2C1_SDA_BANK GPIOB
73#define I2C1_SDA 11
74#define I2C1_TIMINGR_PRESC 2U 72#define I2C1_TIMINGR_PRESC 2U
75#define I2C1_TIMINGR_SCLDEL 1U 73#define I2C1_TIMINGR_SCLDEL 1U
76#define I2C1_TIMINGR_SDADEL 0U 74#define I2C1_TIMINGR_SDADEL 0U
diff --git a/keyboards/ferris/0_2/matrix.c b/keyboards/ferris/0_2/matrix.c
index afa8a344c..ff0e66d65 100644
--- a/keyboards/ferris/0_2/matrix.c
+++ b/keyboards/ferris/0_2/matrix.c
@@ -59,11 +59,6 @@ extern i2c_status_t mcp23017_status;
59bool i2c_initialized = 0; 59bool i2c_initialized = 0;
60i2c_status_t mcp23017_status = I2C_ADDR; 60i2c_status_t mcp23017_status = I2C_ADDR;
61 61
62#define I2C2_SCL_BANK GPIOB
63#define I2C2_SCL 10
64#define I2C2_SDA_BANK GPIOB
65#define I2C2_SDA 11
66
67uint8_t init_mcp23017(void) { 62uint8_t init_mcp23017(void) {
68 print("init mcp23017\n"); 63 print("init mcp23017\n");
69 mcp23017_status = I2C_ADDR; 64 mcp23017_status = I2C_ADDR;
diff --git a/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c b/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
index 956932329..1287614a8 100644
--- a/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
+++ b/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
@@ -17,7 +17,7 @@
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19void board_init(void) { 19void board_init(void) {
20 // B9 is configured as I2C1_SDA in the board file; that function must be 20 // B9 is configured as I2C1_SDA_PIN in the board file; that function must be
21 // disabled before using B7 as I2C1_SDA. 21 // disabled before using B7 as I2C1_SDA.
22 setPinInputHigh(B9); 22 setPinInputHigh(B9);
23} 23}
diff --git a/keyboards/handwired/onekey/teensy_32/config.h b/keyboards/handwired/onekey/teensy_32/config.h
index 180f32487..e388b01af 100644
--- a/keyboards/handwired/onekey/teensy_32/config.h
+++ b/keyboards/handwired/onekey/teensy_32/config.h
@@ -26,7 +26,7 @@
26#define UNUSED_PINS 26#define UNUSED_PINS
27 27
28// i2c_master defines 28// i2c_master defines
29#define I2C1_SCL 0 // A2 on pinout = B0 29#define I2C1_SCL_PIN B0 // A2 on pinout = B0
30#define I2C1_SDA 1 // A3 on pinout = B1 30#define I2C1_SDA_PIN B1 // A3 on pinout = B1
31#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 31#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
32#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 32#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
diff --git a/keyboards/handwired/onekey/teensy_lc/config.h b/keyboards/handwired/onekey/teensy_lc/config.h
index ad30f969f..4e594e7d7 100644
--- a/keyboards/handwired/onekey/teensy_lc/config.h
+++ b/keyboards/handwired/onekey/teensy_lc/config.h
@@ -26,7 +26,7 @@
26#define UNUSED_PINS 26#define UNUSED_PINS
27 27
28// i2c_master defines 28// i2c_master defines
29#define I2C1_SCL 0 // A2 on pinout = B0 29#define I2C1_SCL_PIN B0 // A2 on pinout = B0
30#define I2C1_SDA 1 // A3 on pinout = B1 30#define I2C1_SDA_PIN B1 // A3 on pinout = B1
31#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 31#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
32#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 32#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
index 0e5b72c56..983b7b11b 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
@@ -71,10 +71,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
71 71
72/* i2c config for oleds */ 72/* i2c config for oleds */
73#define I2C_DRIVER I2CD1 73#define I2C_DRIVER I2CD1
74#define I2C1_SCL_BANK GPIOB 74#define I2C1_SCL_PIN B8
75#define I2C1_SDA_BANK GPIOB 75#define I2C1_SDA_PIN B9
76#define I2C1_SCL 8
77#define I2C1_SDA 9
78#define I2C1_SCL_PAL_MODE 4 76#define I2C1_SCL_PAL_MODE 4
79#define I2C1_SDA_PAL_MODE 4 77#define I2C1_SDA_PAL_MODE 4
80#define I2C1_CLOCK_SPEED 400000 78#define I2C1_CLOCK_SPEED 400000
diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h
index 3df5d78d5..5d615dbad 100644
--- a/keyboards/matrix/m20add/config.h
+++ b/keyboards/matrix/m20add/config.h
@@ -82,8 +82,8 @@
82#define DEBOUNCE 5 82#define DEBOUNCE 5
83 83
84// i2c setting 84// i2c setting
85#define I2C1_SCL 8 85#define I2C1_SCL_PIN B8
86#define I2C1_SDA 9 86#define I2C1_SDA_PIN B9
87#define I2C1_CLOCK_SPEED 400000 87#define I2C1_CLOCK_SPEED 400000
88#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 88#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
89 89
diff --git a/keyboards/matrix/m20add/m20add.c b/keyboards/matrix/m20add/m20add.c
index b38dad27c..21f4f9b1b 100644
--- a/keyboards/matrix/m20add/m20add.c
+++ b/keyboards/matrix/m20add/m20add.c
@@ -64,12 +64,12 @@ void i2c_init(void)
64 } 64 }
65 65
66 // Try releasing special pins for a short time 66 // Try releasing special pins for a short time
67 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); 67 palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
68 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); 68 palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
69 69
70 chThdSleepMilliseconds(10); 70 chThdSleepMilliseconds(10);
71 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 71 palSetLineMode(I2C1_SCL_PIN, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
72 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 72 palSetLineMode(I2C1_SDA_PIN, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
73} 73}
74 74
75#define REBOOT_MAGIC 0x41544B42 75#define REBOOT_MAGIC 0x41544B42
diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h
index f41cad94c..e5fa4959c 100644
--- a/keyboards/matrix/noah/config.h
+++ b/keyboards/matrix/noah/config.h
@@ -26,8 +26,8 @@
26#define DEBOUNCE 5 26#define DEBOUNCE 5
27 27
28// i2c setting 28// i2c setting
29#define I2C1_SCL 8 29#define I2C1_SCL_PIN B8
30#define I2C1_SDA 9 30#define I2C1_SDA_PIN B9
31#define I2C1_CLOCK_SPEED 400000 31#define I2C1_CLOCK_SPEED 400000
32#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 32#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
33#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN) 33#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)
diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h
index 1cdac01d0..d2b6639a3 100644
--- a/keyboards/whitefox/config.h
+++ b/keyboards/whitefox/config.h
@@ -72,9 +72,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
72#define I2C1_CLOCK_SPEED 400000 72#define I2C1_CLOCK_SPEED 400000
73#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2 73#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
74#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2 74#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
75#define I2C1_BANK GPIOB 75#define I2C1_SCL_PIN B0
76#define I2C1_SCL 0 76#define I2C1_SDA_PIN B1
77#define I2C1_SDA 1
78 77
79/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. 78/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
80 * This is useful for the Windows task manager shortcut (ctrl+shift+esc). 79 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
diff --git a/keyboards/xelus/kangaroo/config.h b/keyboards/xelus/kangaroo/config.h
index f6b17c24a..1d746b342 100644
--- a/keyboards/xelus/kangaroo/config.h
+++ b/keyboards/xelus/kangaroo/config.h
@@ -43,8 +43,8 @@
43#define LOCKING_RESYNC_ENABLE 43#define LOCKING_RESYNC_ENABLE
44 44
45// I2C OLED defines 45// I2C OLED defines
46#define I2C1_SCL 8 46#define I2C1_SCL_PIN B8
47#define I2C1_SDA 9 47#define I2C1_SDA_PIN B9
48 48
49#define I2C1_SCL_PAL_MODE 1 49#define I2C1_SCL_PAL_MODE 1
50#define I2C1_SDA_PAL_MODE 1 50#define I2C1_SDA_PAL_MODE 1
diff --git a/keyboards/xelus/pachi/rgb/config.h b/keyboards/xelus/pachi/rgb/config.h
index 9378b2c41..3bc7071ec 100644
--- a/keyboards/xelus/pachi/rgb/config.h
+++ b/keyboards/xelus/pachi/rgb/config.h
@@ -45,8 +45,8 @@
45#define LOCKING_RESYNC_ENABLE 45#define LOCKING_RESYNC_ENABLE
46 46
47// I2C setup 47// I2C setup
48#define I2C1_SCL 8 48#define I2C1_SCL_PIN B8
49#define I2C1_SDA 9 49#define I2C1_SDA_PIN B9
50#define I2C1_SCL_PAL_MODE 4 50#define I2C1_SCL_PAL_MODE 4
51#define I2C1_SDA_PAL_MODE 4 51#define I2C1_SDA_PAL_MODE 4
52#define I2C1_TIMINGR_PRESC 0U 52#define I2C1_TIMINGR_PRESC 0U
diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h
index 2ab581c75..502cc482e 100644
--- a/keyboards/xelus/valor/rev2/config.h
+++ b/keyboards/xelus/valor/rev2/config.h
@@ -47,8 +47,8 @@
47#define LOCKING_RESYNC_ENABLE 47#define LOCKING_RESYNC_ENABLE
48 48
49// I2C setup 49// I2C setup
50#define I2C1_SCL 8 50#define I2C1_SCL_PIN B8
51#define I2C1_SDA 9 51#define I2C1_SDA_PIN B9
52#define I2C1_SCL_PAL_MODE 4 52#define I2C1_SCL_PAL_MODE 4
53#define I2C1_SDA_PAL_MODE 4 53#define I2C1_SDA_PAL_MODE 4
54#define I2C1_TIMINGR_PRESC 0U 54#define I2C1_TIMINGR_PRESC 0U
diff --git a/keyboards/xelus/valor_frl_tkl/config.h b/keyboards/xelus/valor_frl_tkl/config.h
index 5319a95ba..c1c08878c 100644
--- a/keyboards/xelus/valor_frl_tkl/config.h
+++ b/keyboards/xelus/valor_frl_tkl/config.h
@@ -47,8 +47,8 @@
47#define LOCKING_RESYNC_ENABLE 47#define LOCKING_RESYNC_ENABLE
48 48
49// I2C OLED defines 49// I2C OLED defines
50#define I2C1_SCL 8 50#define I2C1_SCL_PIN B8
51#define I2C1_SDA 9 51#define I2C1_SDA_PIN B9
52 52
53#define I2C1_SCL_PAL_MODE 1 53#define I2C1_SCL_PAL_MODE 1
54#define I2C1_SDA_PAL_MODE 1 54#define I2C1_SDA_PAL_MODE 1
diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c
index fc4bb2ab3..9af5c71c3 100644
--- a/platforms/chibios/drivers/i2c_master.c
+++ b/platforms/chibios/drivers/i2c_master.c
@@ -63,16 +63,16 @@ __attribute__((weak)) void i2c_init(void) {
63 is_initialised = true; 63 is_initialised = true;
64 64
65 // Try releasing special pins for a short time 65 // Try releasing special pins for a short time
66 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); 66 palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
67 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); 67 palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
68 68
69 chThdSleepMilliseconds(10); 69 chThdSleepMilliseconds(10);
70#if defined(USE_GPIOV1) 70#if defined(USE_GPIOV1)
71 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE); 71 palSetLineMode(I2C1_SCL_PIN, I2C1_SCL_PAL_MODE);
72 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE); 72 palSetLineMode(I2C1_SDA_PIN, I2C1_SDA_PAL_MODE);
73#else 73#else
74 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 74 palSetLineMode(I2C1_SCL_PIN, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
75 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 75 palSetLineMode(I2C1_SDA_PIN, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
76#endif 76#endif
77 } 77 }
78} 78}
diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h
index c68109acb..303aa6990 100644
--- a/platforms/chibios/drivers/i2c_master.h
+++ b/platforms/chibios/drivers/i2c_master.h
@@ -27,24 +27,11 @@
27#include <ch.h> 27#include <ch.h>
28#include <hal.h> 28#include <hal.h>
29 29
30#ifdef I2C1_BANK 30#ifndef I2C1_SCL_PIN
31# define I2C1_SCL_BANK I2C1_BANK 31# define I2C1_SCL_PIN B6
32# define I2C1_SDA_BANK I2C1_BANK
33#endif 32#endif
34 33#ifndef I2C1_SDA_PIN
35#ifndef I2C1_SCL_BANK 34# define I2C1_SDA_PIN B7
36# define I2C1_SCL_BANK GPIOB
37#endif
38
39#ifndef I2C1_SDA_BANK
40# define I2C1_SDA_BANK GPIOB
41#endif
42
43#ifndef I2C1_SCL
44# define I2C1_SCL 6
45#endif
46#ifndef I2C1_SDA
47# define I2C1_SDA 7
48#endif 35#endif
49 36
50#ifdef USE_I2CV1 37#ifdef USE_I2CV1