| /* |
| * Copyright (c) 2018 Christian Taedcke |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/init.h> |
| #include <zephyr/drivers/gpio.h> |
| #include <zephyr/sys/printk.h> |
| |
| /* This pin is used to enable the serial port using the board controller */ |
| #if defined(CONFIG_BOARD_EFR32_RADIO_BRD4180A) |
| #define VCOM_ENABLE_GPIO_NODE DT_NODELABEL(gpiod) |
| #define VCOM_ENABLE_GPIO_PIN 4 |
| #elif defined(CONFIG_BOARD_EFR32_RADIO_BRD4187C) |
| #define VCOM_ENABLE_GPIO_NODE DT_NODELABEL(gpiob) |
| #define VCOM_ENABLE_GPIO_PIN 0 |
| #else |
| #define VCOM_ENABLE_GPIO_NODE DT_NODELABEL(gpioa) |
| #define VCOM_ENABLE_GPIO_PIN 5 |
| #endif |
| |
| static int efr32_radio_init(void) |
| { |
| const struct device *vce_dev; /* Virtual COM Port Enable GPIO Device */ |
| |
| |
| /* Enable the board controller to be able to use the serial port */ |
| vce_dev = DEVICE_DT_GET(VCOM_ENABLE_GPIO_NODE); |
| if (!device_is_ready(vce_dev)) { |
| printk("Virtual COM Port Enable device is not ready!\n"); |
| return -ENODEV; |
| } |
| |
| gpio_pin_configure(vce_dev, VCOM_ENABLE_GPIO_PIN, GPIO_OUTPUT_HIGH); |
| |
| return 0; |
| } |
| |
| /* needs to be done after GPIO driver init */ |
| SYS_INIT(efr32_radio_init, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE); |