static void i2c_config_0(struct device *port) { #if defined(CONFIG_I2C_DW_0_IRQ_DIRECT) IRQ_CONNECT(CONFIG_I2C_0_IRQ, CONFIG_I2C_0_IRQ_PRI, i2c_dw_isr, DEVICE_GET(i2c_0), CONFIG_I2C_0_IRQ_FLAGS); irq_enable(CONFIG_I2C_0_IRQ); #elif defined(CONFIG_I2C_DW_0_IRQ_SHARED) const struct i2c_dw_rom_config * const config = port->config->config_info; struct device *shared_irq_dev; shared_irq_dev = device_get_binding(config->shared_irq_dev_name); shared_irq_isr_register(shared_irq_dev, (isr_t)i2c_dw_isr, port); shared_irq_enable(shared_irq_dev, port); #endif }
static void eth_config_0_irq(struct device *port) { const struct eth_config *config = port->config->config_info; struct device *shared_irq_dev; #ifdef CONFIG_ETH_DW_0_IRQ_DIRECT ARG_UNUSED(shared_irq_dev); IRQ_CONNECT(ETH_DW_0_IRQ, CONFIG_ETH_DW_0_IRQ_PRI, eth_dw_isr, DEVICE_GET(eth_dw_0), 0); irq_enable(ETH_DW_0_IRQ); #elif defined(CONFIG_ETH_DW_0_IRQ_SHARED) shared_irq_dev = device_get_binding(config->shared_irq_dev_name); __ASSERT(shared_irq_dev != NULL, "Failed to get eth_dw device binding"); shared_irq_isr_register(shared_irq_dev, (isr_t)eth_dw_isr, port); shared_irq_enable(shared_irq_dev, port); #endif }
void gpio_config_1_irq(struct device *port) { struct gpio_dw_config *config = port->config->config_info; struct device *shared_irq_dev; #ifdef CONFIG_GPIO_DW_1_IRQ_DIRECT ARG_UNUSED(shared_irq_dev); IRQ_CONNECT(GPIO_DW_1_IRQ, CONFIG_GPIO_DW_1_PRI, gpio_dw_isr, DEVICE_GET(gpio_dw_1), GPIO_DW_1_IRQ_FLAGS); irq_enable(config->irq_num); #elif defined(CONFIG_GPIO_DW_1_IRQ_SHARED) shared_irq_dev = device_get_binding(config->shared_irq_dev_name); __ASSERT(shared_irq_dev != NULL, "Failed to get gpio_dw_1 device binding"); shared_irq_isr_register(shared_irq_dev, (isr_t)gpio_dw_isr, port); shared_irq_enable(shared_irq_dev, port); #endif gpio_dw_unmask_int(GPIO_DW_PORT_1_INT_MASK); }