/* * Copyright (c) 2015 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include "soc.h" #if CONFIG_IPM_QUARK_SE #include #include static int arc_quark_se_ipm_init(void) { IRQ_CONNECT(QUARK_SE_IPM_INTERRUPT, CONFIG_QUARK_SE_SS_IPM_IRQ_PRI, quark_se_ipm_isr, NULL, 0); irq_enable(QUARK_SE_IPM_INTERRUPT); return 0; } static struct quark_se_ipm_controller_config_info ipm_controller_config = { .controller_init = arc_quark_se_ipm_init }; DEVICE_AND_API_INIT(quark_se_ipm, "", quark_se_ipm_controller_initialize, NULL, &ipm_controller_config, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &ipm_quark_se_api_funcs); #if CONFIG_IPM_CONSOLE_SENDER #include QUARK_SE_IPM_DEFINE(quark_se_ipm4, 4, QUARK_SE_IPM_OUTBOUND); static struct ipm_console_sender_config_info quark_se_ipm_sender_config = { .bind_to = "quark_se_ipm4", .flags = IPM_CONSOLE_PRINTK | IPM_CONSOLE_STDOUT, }; DEVICE_INIT(ipm_console, "ipm_console", ipm_console_sender_init, NULL, &quark_se_ipm_sender_config, POST_KERNEL, CONFIG_IPM_CONSOLE_INIT_PRIORITY); #endif /* CONFIG_IPM_CONSOLE_SENDER */ #endif /* CONFIG_IPM_QUARK_SE */ #ifdef CONFIG_UART_NS16550 static int uart_ns16550_init(struct device *dev) { ARG_UNUSED(dev); #ifdef CONFIG_UART_NS16550_PORT_0 sys_clear_bit((SCSS_REGISTER_BASE + UART_NS16550_PORT_0_INT_MASK), INT_ENABLE_ARC_BIT_POS); #endif /* CONFIG_UART_NS16550_PORT_0 */ #ifdef CONFIG_UART_NS16550_PORT_1 sys_clear_bit((SCSS_REGISTER_BASE + UART_NS16550_PORT_1_INT_MASK), INT_ENABLE_ARC_BIT_POS); #endif /* CONFIG_UART_NS16550_PORT_1 */ return 0; } SYS_INIT(uart_ns16550_init, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); #endif /* CONFIG_UART_NS16550 */