forked from mirrors/qmk_userspace
		
	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>
This commit is contained in:
		
					parent
					
						
							
								bb841087bb
							
						
					
				
			
			
				commit
				
					
						0fa217a5b7
					
				
			
		
					 26 changed files with 64 additions and 95 deletions
				
			
		| 
						 | 
					@ -62,16 +62,13 @@ Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, fo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Configuration-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.
 | 
					Configuration-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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
|`config.h` Overrride    |Description                                                                                |Default|
 | 
					|`config.h` Overrride    |Description                                                   |Default|
 | 
				
			||||||
|------------------------|-------------------------------------------------------------------------------------------|-------|
 | 
					|------------------------|--------------------------------------------------------------|-------|
 | 
				
			||||||
|`I2C_DRIVER`            |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.                              |`I2CD1`|
 | 
					|`I2C_DRIVER`            |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`|
 | 
				
			||||||
|`I2C1_BANK` (deprecated)|The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superseded by `I2C1_SCL_BANK`/`I2C1_SDA_BANK`|`GPIOB`|
 | 
					|`I2C1_SCL_PIN`          |The pin definition for SCL                                    |`B6`   |
 | 
				
			||||||
|`I2C1_SCL_BANK`         |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL                                |`GPIOB`|
 | 
					|`I2C1_SCL_PAL_MODE`     |The alternate function mode for SCL                           |`4`    |
 | 
				
			||||||
|`I2C1_SCL`              |The pin number for SCL (0-15)                                                              |`6`    |
 | 
					|`I2C1_SDA_PIN`          |The pin definition for SDA                                    |`B7`   |
 | 
				
			||||||
|`I2C1_SCL_PAL_MODE`     |The alternate function mode for SCL                                                        |`4`    |
 | 
					|`I2C1_SDA_PAL_MODE`     |The alternate function mode for SDA                           |`4`    |
 | 
				
			||||||
|`I2C1_SDA_BANK`         |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA                                |`GPIOB`|
 | 
					 | 
				
			||||||
|`I2C1_SDA`              |The pin number for SDA (0-15)                                                              |`7`    |
 | 
					 | 
				
			||||||
|`I2C1_SDA_PAL_MODE`     |The alternate function mode for SDA                                                        |`4`    |
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
The following configuration values depend on the specific MCU in use.
 | 
					The following configuration values depend on the specific MCU in use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,13 +79,10 @@ ARM MCU 用の設定はしばしば非常に複雑です。これは、多くの
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STM32 MCU では、使用するハードウェアドライバにより、さまざまなピンを I2C ピンとして設定できます。標準では `B6`, `B7` ピンが I2C 用のピンです。 I2C 用のピンを設定するために次の定義が使えます:
 | 
					STM32 MCU では、使用するハードウェアドライバにより、さまざまなピンを I2C ピンとして設定できます。標準では `B6`, `B7` ピンが I2C 用のピンです。 I2C 用のピンを設定するために次の定義が使えます:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 変数                  | 説明                                                                                             | 既定値  |
 | 
					| 変数                  | 説明                                                                                      | 既定値  |
 | 
				
			||||||
|-----------------------|--------------------------------------------------------------------------------------------------|---------|
 | 
					|-----------------------|-------------------------------------------------------------------------------------------|---------|
 | 
				
			||||||
| `I2C1_SCL_BANK`       | SCL に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)                                               | `GPIOB` |
 | 
					| `I2C1_SCL_PIN`        | SCL のピン番号                                                                            | `B6`    |
 | 
				
			||||||
| `I2C1_SDA_BANK`       | SDA に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)                                               | `GPIOB` |
 | 
					| `I2C1_SDA_PIN`        | SDA のピン番号                                                                            | `B7`    |
 | 
				
			||||||
| `I2C1_SCL`            | SCL のピン番号 (0-15)                                                                            | `6`     |
 | 
					 | 
				
			||||||
| `I2C1_SDA`            | SDA のピン番号 (0-15)                                                                            | `7`     |
 | 
					 | 
				
			||||||
| `I2C1_BANK`(非推奨) | 使用するピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)。後継は `I2C1_SCL_BANK`, `I2C1_SDA_BANK` です。 | `GPIOB` |
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。
 | 
					ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,8 +47,8 @@
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C setup
 | 
					// I2C setup
 | 
				
			||||||
#define I2C1_SCL            8
 | 
					#define I2C1_SCL_PIN        B8
 | 
				
			||||||
#define I2C1_SDA            9
 | 
					#define I2C1_SDA_PIN        B9
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE   4
 | 
					#define I2C1_SCL_PAL_MODE   4
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE   4
 | 
					#define I2C1_SDA_PAL_MODE   4
 | 
				
			||||||
#define I2C1_TIMINGR_PRESC  0U
 | 
					#define I2C1_TIMINGR_PRESC  0U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,8 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define WS2812_EXTERNAL_PULLUP
 | 
					#define WS2812_EXTERNAL_PULLUP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C OLED defines
 | 
					// I2C OLED defines
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 1
 | 
					#define I2C1_SCL_PAL_MODE 1
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 1
 | 
					#define I2C1_SDA_PAL_MODE 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,9 +53,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C config
 | 
					// I2C config
 | 
				
			||||||
#define I2C_DRIVER I2CD1
 | 
					#define I2C_DRIVER I2CD1
 | 
				
			||||||
#define I2C1_SCL_BANK GPIOB
 | 
					#define I2C1_SCL_PIN B6
 | 
				
			||||||
#define I2C1_SCL 6
 | 
					#define I2C1_SDA_PIN B7
 | 
				
			||||||
#define I2C1_SDA 7
 | 
					 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 1
 | 
					#define I2C1_SCL_PAL_MODE 1
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 1
 | 
					#define I2C1_SDA_PAL_MODE 1
 | 
				
			||||||
#define I2C1_TIMINGR_PRESC 0x00U
 | 
					#define I2C1_TIMINGR_PRESC 0x00U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,8 +77,8 @@
 | 
				
			||||||
// 0b1110101 AD <-> SCL
 | 
					// 0b1110101 AD <-> SCL
 | 
				
			||||||
// 0b1110110 AD <-> SDA
 | 
					// 0b1110110 AD <-> SDA
 | 
				
			||||||
#define LED_DRIVER_ADDR_1 0b1110100
 | 
					#define LED_DRIVER_ADDR_1 0b1110100
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define LED_DRIVER_COUNT 1
 | 
					#define LED_DRIVER_COUNT 1
 | 
				
			||||||
#define DRIVER_LED_TOTAL 71
 | 
					#define DRIVER_LED_TOTAL 71
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,8 +46,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 1
 | 
					#define I2C1_SCL_PAL_MODE 1
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 1
 | 
					#define I2C1_SDA_PAL_MODE 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,9 +83,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define I2C1_CLOCK_SPEED 400000
 | 
					#define I2C1_CLOCK_SPEED 400000
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_BANK GPIOB
 | 
					#define I2C1_SCL_PIN B0
 | 
				
			||||||
#define I2C1_SCL 0
 | 
					#define I2C1_SDA_PIN B1
 | 
				
			||||||
#define I2C1_SDA 1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ST7565_ENABLE
 | 
					#ifdef ST7565_ENABLE
 | 
				
			||||||
/* LCD driver */
 | 
					/* LCD driver */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c_master defines
 | 
					// i2c_master defines
 | 
				
			||||||
#define I2C1_SCL 0 // A2 on pinout = B0
 | 
					#define I2C1_SCL_PIN B0 // A2 on pinout = B0
 | 
				
			||||||
#define I2C1_SDA 1 // A3 on pinout = B1
 | 
					#define I2C1_SDA_PIN B1 // A3 on pinout = B1
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c_master defines
 | 
					// i2c_master defines
 | 
				
			||||||
#define I2C1_SCL 0 // A2 on pinout = B0
 | 
					#define I2C1_SCL_PIN B0 // A2 on pinout = B0
 | 
				
			||||||
#define I2C1_SDA 1 // A3 on pinout = B1
 | 
					#define I2C1_SDA_PIN B1 // A3 on pinout = B1
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,10 +67,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
/* i2c settings */
 | 
					/* i2c settings */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C_DRIVER I2CD2
 | 
					#define I2C_DRIVER I2CD2
 | 
				
			||||||
#define I2C1_SCL_BANK GPIOB
 | 
					#define I2C1_SCL_PIN B10
 | 
				
			||||||
#define I2C1_SCL 10
 | 
					#define I2C1_SDA_PIN B11
 | 
				
			||||||
#define I2C1_SDA_BANK GPIOB
 | 
					 | 
				
			||||||
#define I2C1_SDA 11
 | 
					 | 
				
			||||||
#define I2C1_TIMINGR_PRESC 2U
 | 
					#define I2C1_TIMINGR_PRESC 2U
 | 
				
			||||||
#define I2C1_TIMINGR_SCLDEL 1U
 | 
					#define I2C1_TIMINGR_SCLDEL 1U
 | 
				
			||||||
#define I2C1_TIMINGR_SDADEL 0U
 | 
					#define I2C1_TIMINGR_SDADEL 0U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,11 +59,6 @@ extern i2c_status_t mcp23017_status;
 | 
				
			||||||
bool         i2c_initialized = 0;
 | 
					bool         i2c_initialized = 0;
 | 
				
			||||||
i2c_status_t mcp23017_status = I2C_ADDR;
 | 
					i2c_status_t mcp23017_status = I2C_ADDR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C2_SCL_BANK GPIOB
 | 
					 | 
				
			||||||
#define I2C2_SCL 10
 | 
					 | 
				
			||||||
#define I2C2_SDA_BANK GPIOB
 | 
					 | 
				
			||||||
#define I2C2_SDA 11
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uint8_t init_mcp23017(void) {
 | 
					uint8_t init_mcp23017(void) {
 | 
				
			||||||
    print("init mcp23017\n");
 | 
					    print("init mcp23017\n");
 | 
				
			||||||
    mcp23017_status = I2C_ADDR;
 | 
					    mcp23017_status = I2C_ADDR;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
#include QMK_KEYBOARD_H
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void board_init(void) {
 | 
					void board_init(void) {
 | 
				
			||||||
    // B9 is configured as I2C1_SDA in the board file; that function must be
 | 
					    // B9 is configured as I2C1_SDA_PIN in the board file; that function must be
 | 
				
			||||||
    // disabled before using B7 as I2C1_SDA.
 | 
					    // disabled before using B7 as I2C1_SDA.
 | 
				
			||||||
    setPinInputHigh(B9);
 | 
					    setPinInputHigh(B9);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@
 | 
				
			||||||
#define UNUSED_PINS
 | 
					#define UNUSED_PINS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c_master defines
 | 
					// i2c_master defines
 | 
				
			||||||
#define I2C1_SCL 0 // A2 on pinout = B0
 | 
					#define I2C1_SCL_PIN B0 // A2 on pinout = B0
 | 
				
			||||||
#define I2C1_SDA 1 // A3 on pinout = B1
 | 
					#define I2C1_SDA_PIN B1 // A3 on pinout = B1
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@
 | 
				
			||||||
#define UNUSED_PINS
 | 
					#define UNUSED_PINS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c_master defines
 | 
					// i2c_master defines
 | 
				
			||||||
#define I2C1_SCL 0 // A2 on pinout = B0
 | 
					#define I2C1_SCL_PIN B0 // A2 on pinout = B0
 | 
				
			||||||
#define I2C1_SDA 1 // A3 on pinout = B1
 | 
					#define I2C1_SDA_PIN B1 // A3 on pinout = B1
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,10 +71,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* i2c config for oleds */
 | 
					/* i2c config for oleds */
 | 
				
			||||||
#define I2C_DRIVER        I2CD1
 | 
					#define I2C_DRIVER        I2CD1
 | 
				
			||||||
#define I2C1_SCL_BANK     GPIOB
 | 
					#define I2C1_SCL_PIN      B8
 | 
				
			||||||
#define I2C1_SDA_BANK     GPIOB
 | 
					#define I2C1_SDA_PIN      B9
 | 
				
			||||||
#define I2C1_SCL          8
 | 
					 | 
				
			||||||
#define I2C1_SDA          9
 | 
					 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 4
 | 
					#define I2C1_SCL_PAL_MODE 4
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 4
 | 
					#define I2C1_SDA_PAL_MODE 4
 | 
				
			||||||
#define I2C1_CLOCK_SPEED  400000
 | 
					#define I2C1_CLOCK_SPEED  400000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,8 +82,8 @@
 | 
				
			||||||
#define DEBOUNCE    5
 | 
					#define DEBOUNCE    5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c setting
 | 
					// i2c setting
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
#define I2C1_CLOCK_SPEED 400000
 | 
					#define I2C1_CLOCK_SPEED 400000
 | 
				
			||||||
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
 | 
					#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,12 +64,12 @@ void i2c_init(void)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Try releasing special pins for a short time
 | 
					    // Try releasing special pins for a short time
 | 
				
			||||||
    palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
 | 
					    palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
 | 
				
			||||||
    palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
 | 
					    palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    chThdSleepMilliseconds(10);
 | 
					    chThdSleepMilliseconds(10);
 | 
				
			||||||
    palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
					    palSetLineMode(I2C1_SCL_PIN, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
				
			||||||
    palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
					    palSetLineMode(I2C1_SDA_PIN, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define REBOOT_MAGIC 0x41544B42
 | 
					#define REBOOT_MAGIC 0x41544B42
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,8 +26,8 @@
 | 
				
			||||||
#define DEBOUNCE    5
 | 
					#define DEBOUNCE    5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// i2c setting
 | 
					// i2c setting
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
#define I2C1_CLOCK_SPEED 400000
 | 
					#define I2C1_CLOCK_SPEED 400000
 | 
				
			||||||
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
 | 
					#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
 | 
				
			||||||
#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)
 | 
					#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,9 +72,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define I2C1_CLOCK_SPEED 400000
 | 
					#define I2C1_CLOCK_SPEED 400000
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
					#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
 | 
				
			||||||
#define I2C1_BANK GPIOB
 | 
					#define I2C1_SCL_PIN B0
 | 
				
			||||||
#define I2C1_SCL 0
 | 
					#define I2C1_SDA_PIN B1
 | 
				
			||||||
#define I2C1_SDA 1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
 | 
					/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
 | 
				
			||||||
 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
 | 
					 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,8 +43,8 @@
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C OLED defines
 | 
					// I2C OLED defines
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 1
 | 
					#define I2C1_SCL_PAL_MODE 1
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 1
 | 
					#define I2C1_SDA_PAL_MODE 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,8 +45,8 @@
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C setup
 | 
					// I2C setup
 | 
				
			||||||
#define I2C1_SCL            8
 | 
					#define I2C1_SCL_PIN        B8
 | 
				
			||||||
#define I2C1_SDA            9
 | 
					#define I2C1_SDA_PIN        B9
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE   4
 | 
					#define I2C1_SCL_PAL_MODE   4
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE   4
 | 
					#define I2C1_SDA_PAL_MODE   4
 | 
				
			||||||
#define I2C1_TIMINGR_PRESC  0U
 | 
					#define I2C1_TIMINGR_PRESC  0U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,8 +47,8 @@
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C setup
 | 
					// I2C setup
 | 
				
			||||||
#define I2C1_SCL            8
 | 
					#define I2C1_SCL_PIN        B8
 | 
				
			||||||
#define I2C1_SDA            9
 | 
					#define I2C1_SDA_PIN        B9
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE   4
 | 
					#define I2C1_SCL_PAL_MODE   4
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE   4
 | 
					#define I2C1_SDA_PAL_MODE   4
 | 
				
			||||||
#define I2C1_TIMINGR_PRESC  0U
 | 
					#define I2C1_TIMINGR_PRESC  0U
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,8 +47,8 @@
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// I2C OLED defines
 | 
					// I2C OLED defines
 | 
				
			||||||
#define I2C1_SCL 8
 | 
					#define I2C1_SCL_PIN B8
 | 
				
			||||||
#define I2C1_SDA 9
 | 
					#define I2C1_SDA_PIN B9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define I2C1_SCL_PAL_MODE 1
 | 
					#define I2C1_SCL_PAL_MODE 1
 | 
				
			||||||
#define I2C1_SDA_PAL_MODE 1
 | 
					#define I2C1_SDA_PAL_MODE 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,16 +63,16 @@ __attribute__((weak)) void i2c_init(void) {
 | 
				
			||||||
        is_initialised = true;
 | 
					        is_initialised = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Try releasing special pins for a short time
 | 
					        // Try releasing special pins for a short time
 | 
				
			||||||
        palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
 | 
					        palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
 | 
				
			||||||
        palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
 | 
					        palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        chThdSleepMilliseconds(10);
 | 
					        chThdSleepMilliseconds(10);
 | 
				
			||||||
#if defined(USE_GPIOV1)
 | 
					#if defined(USE_GPIOV1)
 | 
				
			||||||
        palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
 | 
					        palSetLineMode(I2C1_SCL_PIN, I2C1_SCL_PAL_MODE);
 | 
				
			||||||
        palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
 | 
					        palSetLineMode(I2C1_SDA_PIN, I2C1_SDA_PAL_MODE);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
        palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
					        palSetLineMode(I2C1_SCL_PIN, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
				
			||||||
        palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
					        palSetLineMode(I2C1_SDA_PIN, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,24 +27,11 @@
 | 
				
			||||||
#include <ch.h>
 | 
					#include <ch.h>
 | 
				
			||||||
#include <hal.h>
 | 
					#include <hal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef I2C1_BANK
 | 
					#ifndef I2C1_SCL_PIN
 | 
				
			||||||
#    define I2C1_SCL_BANK I2C1_BANK
 | 
					#    define I2C1_SCL_PIN B6
 | 
				
			||||||
#    define I2C1_SDA_BANK I2C1_BANK
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef I2C1_SDA_PIN
 | 
				
			||||||
#ifndef I2C1_SCL_BANK
 | 
					#    define I2C1_SDA_PIN B7
 | 
				
			||||||
#    define I2C1_SCL_BANK GPIOB
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef I2C1_SDA_BANK
 | 
					 | 
				
			||||||
#    define I2C1_SDA_BANK GPIOB
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef I2C1_SCL
 | 
					 | 
				
			||||||
#    define I2C1_SCL 6
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#ifndef I2C1_SDA
 | 
					 | 
				
			||||||
#    define I2C1_SDA 7
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef USE_I2CV1
 | 
					#ifdef USE_I2CV1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue