| /* |
| * Copyright (c) 2022 The Chromium OS Authors. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/zephyr.h> |
| #include <zephyr/device.h> |
| #include <zephyr/devicetree.h> |
| #include <zephyr/drivers/gpio.h> |
| |
| #include <zephyr/logging/log.h> |
| LOG_MODULE_REGISTER(main, LOG_LEVEL_DBG); |
| |
| #include "usbc_snk.h" |
| #include "board.h" |
| |
| /* 1 s = 200 * 5 msec */ |
| #define LED_TOGGLE_TIME 200 |
| |
| void main(void) |
| { |
| int ret; |
| int loop_interval; |
| int timer; |
| int led_is_on; |
| |
| /* Config the board */ |
| ret = board_config(); |
| if (ret) { |
| LOG_ERR("Could not configure board"); |
| return; |
| } |
| |
| /* Initialize the Sink State Machine */ |
| ret = sink_init(); |
| if (ret) { |
| LOG_ERR("Could not initialize sink state machine\n"); |
| return; |
| } |
| |
| led_is_on = 0; |
| timer = 0; |
| |
| /* Run Sink State Machine on 5 msec loop interval */ |
| while (1) { |
| /* Run Sink State Machine */ |
| loop_interval = sink_sm(); |
| |
| /* Update LED toggle timer */ |
| timer++; |
| |
| /* Toggle Board LED */ |
| if (timer == LED_TOGGLE_TIME) { |
| timer = 0; |
| board_led(led_is_on); |
| led_is_on = !led_is_on; |
| } |
| |
| k_msleep(loop_interval); |
| } |
| } |