mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 23:50:26 +09:00
x86: Give each driver an IRQ type
Add an IRQ type to each driver and use irq_first_device_type() to find and probe the correct one. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
ba87607971
commit
69c2dc937a
@ -535,7 +535,7 @@ int arch_fsps_preinit(void)
|
|||||||
struct udevice *itss;
|
struct udevice *itss;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = uclass_first_device_err(UCLASS_IRQ, &itss);
|
ret = irq_first_device_type(X86_IRQT_ITSS, &itss);
|
||||||
if (ret)
|
if (ret)
|
||||||
return log_msg_ret("no itss", ret);
|
return log_msg_ret("no itss", ret);
|
||||||
/*
|
/*
|
||||||
@ -576,7 +576,7 @@ int arch_fsp_init_r(void)
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = uclass_first_device_err(UCLASS_IRQ, &itss);
|
ret = irq_first_device_type(X86_IRQT_ITSS, &itss);
|
||||||
if (ret)
|
if (ret)
|
||||||
return log_msg_ret("no itss", ret);
|
return log_msg_ret("no itss", ret);
|
||||||
/* Restore GPIO IRQ polarities back to previous settings */
|
/* Restore GPIO IRQ polarities back to previous settings */
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <efi_loader.h>
|
#include <efi_loader.h>
|
||||||
#include <hang.h>
|
#include <hang.h>
|
||||||
#include <init.h>
|
#include <init.h>
|
||||||
|
#include <irq.h>
|
||||||
#include <irq_func.h>
|
#include <irq_func.h>
|
||||||
#include <asm/control_regs.h>
|
#include <asm/control_regs.h>
|
||||||
#include <asm/i8259.h>
|
#include <asm/i8259.h>
|
||||||
@ -264,7 +265,7 @@ int interrupt_init(void)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Try to set up the interrupt router, but don't require one */
|
/* Try to set up the interrupt router, but don't require one */
|
||||||
ret = uclass_first_device_err(UCLASS_IRQ, &dev);
|
ret = irq_first_device_type(X86_IRQT_BASE, &dev);
|
||||||
if (ret && ret != -ENODEV)
|
if (ret && ret != -ENODEV)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ static const struct irq_ops itss_ops = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct udevice_id itss_ids[] = {
|
static const struct udevice_id itss_ids[] = {
|
||||||
{ .compatible = "intel,itss"},
|
{ .compatible = "intel,itss", .data = X86_IRQT_ITSS },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fdtdec.h>
|
#include <fdtdec.h>
|
||||||
|
#include <irq.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
@ -351,7 +352,7 @@ int irq_router_probe(struct udevice *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const struct udevice_id irq_router_ids[] = {
|
static const struct udevice_id irq_router_ids[] = {
|
||||||
{ .compatible = "intel,irq-router" },
|
{ .compatible = "intel,irq-router", .data = X86_IRQT_BASE },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -613,7 +613,7 @@ int intel_pinctrl_ofdata_to_platdata(struct udevice *dev,
|
|||||||
log_err("Cannot find community for pid %d\n", pplat->pid);
|
log_err("Cannot find community for pid %d\n", pplat->pid);
|
||||||
return -EDOM;
|
return -EDOM;
|
||||||
}
|
}
|
||||||
ret = uclass_first_device_err(UCLASS_IRQ, &priv->itss);
|
ret = irq_first_device_type(X86_IRQT_ITSS, &priv->itss);
|
||||||
if (ret)
|
if (ret)
|
||||||
return log_msg_ret("Cannot find ITSS", ret);
|
return log_msg_ret("Cannot find ITSS", ret);
|
||||||
priv->comm = comm;
|
priv->comm = comm;
|
||||||
|
Loading…
Reference in New Issue
Block a user