From 4742a0c661b4f79ed16aea2c4d161f77d035d7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Wed, 5 Oct 2016 23:12:22 +0200 Subject: [PATCH] Initialize clocks where they're actually needed. --- right/src/init_peripherials.c | 5 ----- right/src/led_driver.c | 13 ++++-------- right/src/led_driver.h | 5 +++++ right/src/reset_button.c | 2 +- right/src/test_led.c | 2 +- right/src/usb_interface_keyboard.c | 33 +++++++++++++++++++----------- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/right/src/init_peripherials.c b/right/src/init_peripherials.c index f11f2a9..1a5f3dd 100644 --- a/right/src/init_peripherials.c +++ b/right/src/init_peripherials.c @@ -44,11 +44,6 @@ void InitI2c() { void InitPeripherials(void) { - CLOCK_EnableClock(kCLOCK_PortA); - CLOCK_EnableClock(kCLOCK_PortB); - CLOCK_EnableClock(kCLOCK_PortC); - CLOCK_EnableClock(kCLOCK_PortD); - InitResetButton(); InitTestLed(); InitI2c(); diff --git a/right/src/led_driver.c b/right/src/led_driver.c index efef21f..ab65132 100644 --- a/right/src/led_driver.c +++ b/right/src/led_driver.c @@ -21,15 +21,10 @@ void LedDriver_WriteRegister(uint8_t i2cAddress, uint8_t reg, uint8_t val) void LedDriver_EnableAllLeds() { - PORT_SetPinMux(PORTA, 2U, kPORT_MuxAsGpio); - - gpio_pin_config_t led_config = { - .pinDirection = kGPIO_DigitalOutput, - .outputLogic = 0, - }; - - GPIO_PinInit(GPIOA, 2U, &led_config); - GPIO_SetPinsOutput(GPIOA, 0 << 2U); + CLOCK_EnableClock(LED_DRIVER_SDB_CLOCK); + PORT_SetPinMux(LED_DRIVER_SDB_PORT, LED_DRIVER_SDB_PIN, kPORT_MuxAsGpio); + GPIO_PinInit(GPIOA, LED_DRIVER_SDB_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 0}); + GPIO_WritePinOutput(LED_DRIVER_SDB_GPIO, LED_DRIVER_SDB_PIN, 1); uint8_t ledDriverAddresses[] = {I2C_ADDRESS_LED_DRIVER_LEFT, I2C_ADDRESS_LED_DRIVER_RIGHT}; diff --git a/right/src/led_driver.h b/right/src/led_driver.h index fe9dc34..5bdd532 100644 --- a/right/src/led_driver.h +++ b/right/src/led_driver.h @@ -11,6 +11,11 @@ // 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_FRAME 0xFD diff --git a/right/src/reset_button.c b/right/src/reset_button.c index 5a07a15..ce73da8 100644 --- a/right/src/reset_button.c +++ b/right/src/reset_button.c @@ -2,7 +2,7 @@ #include "fsl_port.h" void InitResetButton() { + CLOCK_EnableClock(RESET_BUTTON_CLOCK); PORT_SetPinConfig(RESET_BUTTON_PORT, RESET_BUTTON_PIN, &(port_pin_config_t){.pullSelect=kPORT_PullUp, .mux=kPORT_MuxAsGpio}); - CLOCK_EnableClock(RESET_BUTTON_CLOCK); } diff --git a/right/src/test_led.c b/right/src/test_led.c index 7030128..04ce612 100644 --- a/right/src/test_led.c +++ b/right/src/test_led.c @@ -3,7 +3,7 @@ extern void InitTestLed() { + CLOCK_EnableClock(TEST_LED_CLOCK); 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}); - CLOCK_EnableClock(TEST_LED_CLOCK); } diff --git a/right/src/usb_interface_keyboard.c b/right/src/usb_interface_keyboard.c index 7bd6af0..19cc6fe 100644 --- a/right/src/usb_interface_keyboard.c +++ b/right/src/usb_interface_keyboard.c @@ -40,6 +40,7 @@ static usb_keyboard_report_t UsbKeyboardReport; typedef struct { PORT_Type *port; GPIO_Type *gpio; + clock_ip_name_t clock; uint32_t pin; } pin_t; @@ -47,21 +48,21 @@ typedef struct { #define KEYBOARD_MATRIX_ROWS_NUM 5 pin_t keyboardMatrixCols[] = { - {PORTA, GPIOA, 5}, - {PORTB, GPIOB, 3}, - {PORTB, GPIOB, 16}, - {PORTB, GPIOB, 17}, - {PORTB, GPIOB, 18}, - {PORTA, GPIOA, 1}, - {PORTB, GPIOB, 0}, + {PORTA, GPIOA, kCLOCK_PortA, 5}, + {PORTB, GPIOB, kCLOCK_PortB, 3}, + {PORTB, GPIOB, kCLOCK_PortB, 16}, + {PORTB, GPIOB, kCLOCK_PortB, 17}, + {PORTB, GPIOB, kCLOCK_PortB, 18}, + {PORTA, GPIOA, kCLOCK_PortA, 1}, + {PORTB, GPIOB, kCLOCK_PortB, 0}, }; pin_t keyboardMatrixRows[] = { - {PORTA, GPIOA, 12}, - {PORTA, GPIOA, 13}, - {PORTC, GPIOC, 0}, - {PORTB, GPIOB, 19}, - {PORTD, GPIOD, 6}, + {PORTA, GPIOA, kCLOCK_PortA, 12}, + {PORTA, GPIOA, kCLOCK_PortA, 13}, + {PORTC, GPIOC, kCLOCK_PortC, 0}, + {PORTB, GPIOB, kCLOCK_PortB, 19}, + {PORTD, GPIOD, kCLOCK_PortD, 6}, }; static usb_status_t UsbKeyboardAction(void) @@ -70,6 +71,14 @@ static usb_status_t UsbKeyboardAction(void) UsbKeyboardReport.modifiers = 0; UsbKeyboardReport.reserved = 0; + for (uint8_t i=0; i