diff options
| -rw-r--r-- | platforms/chibios/drivers/spi_master.c | 25 | ||||
| -rw-r--r-- | tmk_core/common/chibios/chibios_config.h | 10 |
2 files changed, 34 insertions, 1 deletions
diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index f98db6db9..c592369dd 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c | |||
| @@ -110,6 +110,31 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { | |||
| 110 | spiConfig.tar0 |= SPIx_CTARn_BR(8); | 110 | spiConfig.tar0 |= SPIx_CTARn_BR(8); |
| 111 | break; | 111 | break; |
| 112 | } | 112 | } |
| 113 | |||
| 114 | #elif defined(HT32) | ||
| 115 | spiConfig.cr0 = SPI_CR0_SELOEN; | ||
| 116 | spiConfig.cr1 = SPI_CR1_MODE | 8; // 8 bits and in master mode | ||
| 117 | |||
| 118 | if (lsbFirst) { | ||
| 119 | spiConfig.cr1 |= SPI_CR1_FIRSTBIT; | ||
| 120 | } | ||
| 121 | |||
| 122 | switch (mode) { | ||
| 123 | case 0: | ||
| 124 | spiConfig.cr1 |= SPI_CR1_FORMAT_MODE0; | ||
| 125 | break; | ||
| 126 | case 1: | ||
| 127 | spiConfig.cr1 |= SPI_CR1_FORMAT_MODE1; | ||
| 128 | break; | ||
| 129 | case 2: | ||
| 130 | spiConfig.cr1 |= SPI_CR1_FORMAT_MODE2; | ||
| 131 | break; | ||
| 132 | case 3: | ||
| 133 | spiConfig.cr1 |= SPI_CR1_FORMAT_MODE3; | ||
| 134 | break; | ||
| 135 | } | ||
| 136 | |||
| 137 | spiConfig.cpr = (roundedDivisor - 1) >> 1; | ||
| 113 | #else | 138 | #else |
| 114 | spiConfig.cr1 = 0; | 139 | spiConfig.cr1 = 0; |
| 115 | 140 | ||
diff --git a/tmk_core/common/chibios/chibios_config.h b/tmk_core/common/chibios/chibios_config.h index c35f58955..f06594802 100644 --- a/tmk_core/common/chibios/chibios_config.h +++ b/tmk_core/common/chibios/chibios_config.h | |||
| @@ -48,4 +48,12 @@ | |||
| 48 | # define USE_I2CV1_CONTRIB // for some reason a bunch of ChibiOS-Contrib boards only have clock_speed | 48 | # define USE_I2CV1_CONTRIB // for some reason a bunch of ChibiOS-Contrib boards only have clock_speed |
| 49 | # define USE_GPIOV1 | 49 | # define USE_GPIOV1 |
| 50 | # endif | 50 | # endif |
| 51 | #endif \ No newline at end of file | 51 | #endif |
| 52 | |||
| 53 | #if defined(HT32) | ||
| 54 | # define CPU_CLOCK HT32_CK_SYS_FREQUENCY | ||
| 55 | # define PAL_MODE_ALTERNATE PAL_HT32_MODE_AF | ||
| 56 | # define PAL_OUTPUT_TYPE_OPENDRAIN (PAL_HT32_MODE_OD | PAL_HT32_MODE_DIR) | ||
| 57 | # define PAL_OUTPUT_TYPE_PUSHPULL PAL_HT32_MODE_DIR | ||
| 58 | # define PAL_OUTPUT_SPEED_HIGHEST 0 | ||
| 59 | #endif | ||
