/*
 * Copyright (c) 2019 Jan Van Winkel (jan.van_winkel@dxplore.eu)
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#define DT_FLASH_DEV_NAME   DT_INST_0_ZEPHYR_NATIVE_POSIX_FLASH_CONTROLLER_LABEL
#define DT_UART_0_DEV_NAME  DT_ZEPHYR_NATIVE_POSIX_UART_UART_LABEL

