diff options
author | Dino Li <dino.li@ite.com.tw> | 2014-10-22 19:08:18 +0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-10-29 03:29:17 +0000 |
commit | b5bd5ed20d576c9a4cdd64b20698aa8f3c28f6a2 (patch) | |
tree | bade8ed7ffe377f2305053fc7455989bab5d2f1e /board/it8380dev | |
parent | 8a1f1b045a2bffc0c3bf3941709acf4ba99d32e7 (diff) | |
download | chrome-ec-b5bd5ed20d576c9a4cdd64b20698aa8f3c28f6a2.tar.gz |
it8380dev: add pwm control module
Add pwm control module for emulation board.
Signed-off-by: Dino Li <dino.li@ite.com.tw>
BRANCH=none
BUG=none
TEST=console manual test, pwm channels output correctly.
Change-Id: I6eb1a9e4fdcb9279e9d0cbd67f7a92afed21c889
Reviewed-on: https://chromium-review.googlesource.com/223921
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Dino Li <dino.li@ite.com.tw>
Tested-by: Dino Li <dino.li@ite.com.tw>
Diffstat (limited to 'board/it8380dev')
-rw-r--r-- | board/it8380dev/board.c | 16 | ||||
-rw-r--r-- | board/it8380dev/board.h | 14 | ||||
-rw-r--r-- | board/it8380dev/gpio.inc | 42 |
3 files changed, 51 insertions, 21 deletions
diff --git a/board/it8380dev/board.c b/board/it8380dev/board.c index 401a221c44..588ab4d0d7 100644 --- a/board/it8380dev/board.c +++ b/board/it8380dev/board.c @@ -11,6 +11,8 @@ #include "registers.h" #include "task.h" #include "util.h" +#include "pwm.h" +#include "pwm_chip.h" /* Test GPIO interrupt function that toggles one LED. */ void test_interrupt(enum gpio_signal signal) @@ -24,6 +26,20 @@ void test_interrupt(enum gpio_signal signal) #include "gpio_list.h" +/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */ +const struct pwm_t pwm_channels[] = { + {0, 0}, + {1, PWM_CONFIG_ACTIVE_LOW}, + {2, 0}, + {3, PWM_CONFIG_ACTIVE_LOW}, + {4, 0}, + {5, PWM_CONFIG_ACTIVE_LOW}, + {6, 0}, + {7, PWM_CONFIG_ACTIVE_LOW}, +}; + +BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); + /* Initialize board. */ static void board_init(void) { diff --git a/board/it8380dev/board.h b/board/it8380dev/board.h index 04d3f1b4c0..1d612d32a2 100644 --- a/board/it8380dev/board.h +++ b/board/it8380dev/board.h @@ -15,5 +15,19 @@ #include "gpio_signal.h" +enum pwm_channel { + PWM_CH_0, + PWM_CH_1, + PWM_CH_2, + PWM_CH_3, + PWM_CH_4, + PWM_CH_5, + PWM_CH_6, + PWM_CH_7, + + /* Number of PWM channels */ + PWM_CH_COUNT +}; + #endif /* !__ASSEMBLER__ */ #endif /* __BOARD_H */ diff --git a/board/it8380dev/gpio.inc b/board/it8380dev/gpio.inc index 5091fdb3ef..444ae4c15d 100644 --- a/board/it8380dev/gpio.inc +++ b/board/it8380dev/gpio.inc @@ -5,27 +5,27 @@ * found in the LICENSE file. */ -GPIO(H_LED0, A, 0, GPIO_ODR_HIGH) -GPIO(H_LED1, A, 1, GPIO_ODR_HIGH) -GPIO(H_LED2, A, 2, GPIO_ODR_HIGH) -GPIO(H_LED3, A, 3, GPIO_ODR_HIGH) -GPIO(H_LED4, A, 4, GPIO_ODR_HIGH) -GPIO(H_LED5, A, 5, GPIO_ODR_HIGH) -GPIO(H_LED6, A, 6, GPIO_ODR_HIGH) -GPIO(L_LED0, I, 0, GPIO_ODR_HIGH) -GPIO(L_LED1, I, 1, GPIO_ODR_HIGH) -GPIO(L_LED2, I, 2, GPIO_ODR_HIGH) -GPIO(L_LED3, I, 3, GPIO_ODR_HIGH) -GPIO(L_LED4, I, 4, GPIO_ODR_HIGH) -GPIO(L_LED5, I, 5, GPIO_ODR_HIGH) -GPIO(L_LED6, I, 6, GPIO_ODR_HIGH) -GPIO(BUSY_LED, J, 0, GPIO_OUT_LOW) -GPIO(GOOD_LED, J, 1, GPIO_OUT_HIGH) -GPIO(FAIL_LED, J, 2, GPIO_OUT_LOW) -GPIO(SW1, E, 0, GPIO_INPUT) -GPIO(SW2, E, 1, GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(SW3, E, 2, GPIO_INPUT | GPIO_PULL_DOWN) -GPIO(SW4, E, 3, GPIO_INPUT | GPIO_PULL_DOWN) +GPIO(H_LED0, A, 0, GPIO_ODR_HIGH, NULL) +GPIO(H_LED1, A, 1, GPIO_ODR_HIGH, NULL) +GPIO(H_LED2, A, 2, GPIO_ODR_HIGH, NULL) +GPIO(H_LED3, A, 3, GPIO_ODR_HIGH, NULL) +GPIO(H_LED4, A, 4, GPIO_ODR_HIGH, NULL) +GPIO(H_LED5, A, 5, GPIO_ODR_HIGH, NULL) +GPIO(H_LED6, A, 6, GPIO_ODR_HIGH, NULL) +GPIO(L_LED0, I, 0, GPIO_ODR_HIGH, NULL) +GPIO(L_LED1, I, 1, GPIO_ODR_HIGH, NULL) +GPIO(L_LED2, I, 2, GPIO_ODR_HIGH, NULL) +GPIO(L_LED3, I, 3, GPIO_ODR_HIGH, NULL) +GPIO(L_LED4, I, 4, GPIO_ODR_HIGH, NULL) +GPIO(L_LED5, I, 5, GPIO_ODR_HIGH, NULL) +GPIO(L_LED6, I, 6, GPIO_ODR_HIGH, NULL) +GPIO(BUSY_LED, J, 0, GPIO_OUT_LOW, NULL) +GPIO(GOOD_LED, J, 1, GPIO_OUT_HIGH, NULL) +GPIO(FAIL_LED, J, 2, GPIO_OUT_LOW, NULL) +GPIO(SW1, E, 0, GPIO_INPUT, NULL) +GPIO(SW2, E, 1, GPIO_INPUT | GPIO_PULL_DOWN, NULL) +GPIO(SW3, E, 2, GPIO_INPUT | GPIO_PULL_DOWN, NULL) +GPIO(SW4, E, 3, GPIO_INPUT | GPIO_PULL_DOWN, NULL) GPIO(START_SW, E, 4, GPIO_INT_FALLING, test_interrupt) /* Unimplemented signals which we need to emulate for now */ |