Initialize clocks where they're actually needed.
This commit is contained in:
@@ -44,11 +44,6 @@ void InitI2c() {
|
|||||||
|
|
||||||
void InitPeripherials(void)
|
void InitPeripherials(void)
|
||||||
{
|
{
|
||||||
CLOCK_EnableClock(kCLOCK_PortA);
|
|
||||||
CLOCK_EnableClock(kCLOCK_PortB);
|
|
||||||
CLOCK_EnableClock(kCLOCK_PortC);
|
|
||||||
CLOCK_EnableClock(kCLOCK_PortD);
|
|
||||||
|
|
||||||
InitResetButton();
|
InitResetButton();
|
||||||
InitTestLed();
|
InitTestLed();
|
||||||
InitI2c();
|
InitI2c();
|
||||||
|
|||||||
@@ -21,15 +21,10 @@ void LedDriver_WriteRegister(uint8_t i2cAddress, uint8_t reg, uint8_t val)
|
|||||||
|
|
||||||
void LedDriver_EnableAllLeds()
|
void LedDriver_EnableAllLeds()
|
||||||
{
|
{
|
||||||
PORT_SetPinMux(PORTA, 2U, kPORT_MuxAsGpio);
|
CLOCK_EnableClock(LED_DRIVER_SDB_CLOCK);
|
||||||
|
PORT_SetPinMux(LED_DRIVER_SDB_PORT, LED_DRIVER_SDB_PIN, kPORT_MuxAsGpio);
|
||||||
gpio_pin_config_t led_config = {
|
GPIO_PinInit(GPIOA, LED_DRIVER_SDB_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 0});
|
||||||
.pinDirection = kGPIO_DigitalOutput,
|
GPIO_WritePinOutput(LED_DRIVER_SDB_GPIO, LED_DRIVER_SDB_PIN, 1);
|
||||||
.outputLogic = 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
GPIO_PinInit(GPIOA, 2U, &led_config);
|
|
||||||
GPIO_SetPinsOutput(GPIOA, 0 << 2U);
|
|
||||||
|
|
||||||
uint8_t ledDriverAddresses[] = {I2C_ADDRESS_LED_DRIVER_LEFT, I2C_ADDRESS_LED_DRIVER_RIGHT};
|
uint8_t ledDriverAddresses[] = {I2C_ADDRESS_LED_DRIVER_LEFT, I2C_ADDRESS_LED_DRIVER_RIGHT};
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,11 @@
|
|||||||
|
|
||||||
// Macros:
|
// Macros:
|
||||||
|
|
||||||
|
#define LED_DRIVER_SDB_PORT PORTA
|
||||||
|
#define LED_DRIVER_SDB_GPIO GPIOA
|
||||||
|
#define LED_DRIVER_SDB_CLOCK kCLOCK_PortA
|
||||||
|
#define LED_DRIVER_SDB_PIN 2
|
||||||
|
|
||||||
#define LED_DRIVER_REGISTER_SHUTDOWN 0x0A
|
#define LED_DRIVER_REGISTER_SHUTDOWN 0x0A
|
||||||
#define LED_DRIVER_REGISTER_FRAME 0xFD
|
#define LED_DRIVER_REGISTER_FRAME 0xFD
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include "fsl_port.h"
|
#include "fsl_port.h"
|
||||||
|
|
||||||
void InitResetButton() {
|
void InitResetButton() {
|
||||||
|
CLOCK_EnableClock(RESET_BUTTON_CLOCK);
|
||||||
PORT_SetPinConfig(RESET_BUTTON_PORT, RESET_BUTTON_PIN,
|
PORT_SetPinConfig(RESET_BUTTON_PORT, RESET_BUTTON_PIN,
|
||||||
&(port_pin_config_t){.pullSelect=kPORT_PullUp, .mux=kPORT_MuxAsGpio});
|
&(port_pin_config_t){.pullSelect=kPORT_PullUp, .mux=kPORT_MuxAsGpio});
|
||||||
CLOCK_EnableClock(RESET_BUTTON_CLOCK);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
extern void InitTestLed()
|
extern void InitTestLed()
|
||||||
{
|
{
|
||||||
|
CLOCK_EnableClock(TEST_LED_CLOCK);
|
||||||
PORT_SetPinMux(TEST_LED_GPIO_PORT, TEST_LED_GPIO_PIN, kPORT_MuxAsGpio);
|
PORT_SetPinMux(TEST_LED_GPIO_PORT, TEST_LED_GPIO_PIN, kPORT_MuxAsGpio);
|
||||||
GPIO_PinInit(TEST_LED_GPIO, TEST_LED_GPIO_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 0});
|
GPIO_PinInit(TEST_LED_GPIO, TEST_LED_GPIO_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 0});
|
||||||
CLOCK_EnableClock(TEST_LED_CLOCK);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ static usb_keyboard_report_t UsbKeyboardReport;
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
PORT_Type *port;
|
PORT_Type *port;
|
||||||
GPIO_Type *gpio;
|
GPIO_Type *gpio;
|
||||||
|
clock_ip_name_t clock;
|
||||||
uint32_t pin;
|
uint32_t pin;
|
||||||
} pin_t;
|
} pin_t;
|
||||||
|
|
||||||
@@ -47,21 +48,21 @@ typedef struct {
|
|||||||
#define KEYBOARD_MATRIX_ROWS_NUM 5
|
#define KEYBOARD_MATRIX_ROWS_NUM 5
|
||||||
|
|
||||||
pin_t keyboardMatrixCols[] = {
|
pin_t keyboardMatrixCols[] = {
|
||||||
{PORTA, GPIOA, 5},
|
{PORTA, GPIOA, kCLOCK_PortA, 5},
|
||||||
{PORTB, GPIOB, 3},
|
{PORTB, GPIOB, kCLOCK_PortB, 3},
|
||||||
{PORTB, GPIOB, 16},
|
{PORTB, GPIOB, kCLOCK_PortB, 16},
|
||||||
{PORTB, GPIOB, 17},
|
{PORTB, GPIOB, kCLOCK_PortB, 17},
|
||||||
{PORTB, GPIOB, 18},
|
{PORTB, GPIOB, kCLOCK_PortB, 18},
|
||||||
{PORTA, GPIOA, 1},
|
{PORTA, GPIOA, kCLOCK_PortA, 1},
|
||||||
{PORTB, GPIOB, 0},
|
{PORTB, GPIOB, kCLOCK_PortB, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
pin_t keyboardMatrixRows[] = {
|
pin_t keyboardMatrixRows[] = {
|
||||||
{PORTA, GPIOA, 12},
|
{PORTA, GPIOA, kCLOCK_PortA, 12},
|
||||||
{PORTA, GPIOA, 13},
|
{PORTA, GPIOA, kCLOCK_PortA, 13},
|
||||||
{PORTC, GPIOC, 0},
|
{PORTC, GPIOC, kCLOCK_PortC, 0},
|
||||||
{PORTB, GPIOB, 19},
|
{PORTB, GPIOB, kCLOCK_PortB, 19},
|
||||||
{PORTD, GPIOD, 6},
|
{PORTD, GPIOD, kCLOCK_PortD, 6},
|
||||||
};
|
};
|
||||||
|
|
||||||
static usb_status_t UsbKeyboardAction(void)
|
static usb_status_t UsbKeyboardAction(void)
|
||||||
@@ -70,6 +71,14 @@ static usb_status_t UsbKeyboardAction(void)
|
|||||||
UsbKeyboardReport.modifiers = 0;
|
UsbKeyboardReport.modifiers = 0;
|
||||||
UsbKeyboardReport.reserved = 0;
|
UsbKeyboardReport.reserved = 0;
|
||||||
|
|
||||||
|
for (uint8_t i=0; i<KEYBOARD_MATRIX_COLS_NUM; i++) {
|
||||||
|
CLOCK_EnableClock(keyboardMatrixCols[i].clock);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i=0; i<KEYBOARD_MATRIX_ROWS_NUM; i++) {
|
||||||
|
CLOCK_EnableClock(keyboardMatrixRows[i].clock);
|
||||||
|
}
|
||||||
|
|
||||||
for (uint8_t scancode_idx=0; scancode_idx<USB_KEYBOARD_MAX_KEYS; scancode_idx++) {
|
for (uint8_t scancode_idx=0; scancode_idx<USB_KEYBOARD_MAX_KEYS; scancode_idx++) {
|
||||||
UsbKeyboardReport.scancodes[scancode_idx] = 0;
|
UsbKeyboardReport.scancodes[scancode_idx] = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user