device/pnp: add register PNP_IO4

Add the register PNP_IO4, which will be used by IT5570E in CB:48894.

Change-Id: Ic820295247323f546d4c48ed17cfa4eab3dc5e92
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48924
Reviewed-by:  Felix Singer <felixsinger@posteo.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Michael Niewöhner 2020-12-26 22:20:49 +01:00
parent dbb667ac08
commit 6e016f031f
3 changed files with 29 additions and 25 deletions

View File

@ -249,6 +249,8 @@ static void get_resources(struct device *dev, struct pnp_info *info)
pnp_get_ioresource(dev, PNP_IDX_IO2, info->io2); pnp_get_ioresource(dev, PNP_IDX_IO2, info->io2);
if (info->flags & PNP_IO3) if (info->flags & PNP_IO3)
pnp_get_ioresource(dev, PNP_IDX_IO3, info->io3); pnp_get_ioresource(dev, PNP_IDX_IO3, info->io3);
if (info->flags & PNP_IO4)
pnp_get_ioresource(dev, PNP_IDX_IO4, info->io4);
if (info->flags & PNP_IRQ0) { if (info->flags & PNP_IRQ0) {
resource = new_resource(dev, PNP_IDX_IRQ0); resource = new_resource(dev, PNP_IDX_IRQ0);

View File

@ -38,31 +38,32 @@ struct pnp_info {
#define PNP_SKIP_FUNCTION 0xffff #define PNP_SKIP_FUNCTION 0xffff
u16 function; /* Must be at least 16 bits (virtual LDNs)! */ u16 function; /* Must be at least 16 bits (virtual LDNs)! */
unsigned int flags; unsigned int flags;
#define PNP_IO0 0x000001 #define PNP_IO0 0x0000001
#define PNP_IO1 0x000002 #define PNP_IO1 0x0000002
#define PNP_IO2 0x000004 #define PNP_IO2 0x0000004
#define PNP_IO3 0x000008 #define PNP_IO3 0x0000008
#define PNP_IRQ0 0x000010 #define PNP_IO4 0x0000010
#define PNP_IRQ1 0x000020 #define PNP_IRQ0 0x0000020
#define PNP_DRQ0 0x000040 #define PNP_IRQ1 0x0000040
#define PNP_DRQ1 0x000080 #define PNP_DRQ0 0x0000080
#define PNP_EN 0x000100 #define PNP_DRQ1 0x0000100
#define PNP_MSC0 0x000200 #define PNP_EN 0x0000200
#define PNP_MSC1 0x000400 #define PNP_MSC0 0x0000400
#define PNP_MSC2 0x000800 #define PNP_MSC1 0x0000800
#define PNP_MSC3 0x001000 #define PNP_MSC2 0x0001000
#define PNP_MSC4 0x002000 #define PNP_MSC3 0x0002000
#define PNP_MSC5 0x004000 #define PNP_MSC4 0x0004000
#define PNP_MSC6 0x008000 #define PNP_MSC5 0x0008000
#define PNP_MSC7 0x010000 #define PNP_MSC6 0x0010000
#define PNP_MSC8 0x020000 #define PNP_MSC7 0x0020000
#define PNP_MSC9 0x040000 #define PNP_MSC8 0x0040000
#define PNP_MSCA 0x080000 #define PNP_MSC9 0x0080000
#define PNP_MSCB 0x100000 #define PNP_MSCA 0x0100000
#define PNP_MSCC 0x200000 #define PNP_MSCB 0x0200000
#define PNP_MSCD 0x400000 #define PNP_MSCC 0x0400000
#define PNP_MSCE 0x800000 #define PNP_MSCD 0x0800000
u16 io0, io1, io2, io3; #define PNP_MSCE 0x1000000
u16 io0, io1, io2, io3, io4;
}; };
struct resource *pnp_get_resource(struct device *dev, unsigned int index); struct resource *pnp_get_resource(struct device *dev, unsigned int index);
void pnp_enable_devices(struct device *dev, struct device_operations *ops, void pnp_enable_devices(struct device *dev, struct device_operations *ops,

View File

@ -6,6 +6,7 @@
#define PNP_IDX_IO1 0x62 #define PNP_IDX_IO1 0x62
#define PNP_IDX_IO2 0x64 #define PNP_IDX_IO2 0x64
#define PNP_IDX_IO3 0x66 #define PNP_IDX_IO3 0x66
#define PNP_IDX_IO4 0x68
#define PNP_IDX_IRQ0 0x70 #define PNP_IDX_IRQ0 0x70
#define PNP_IDX_IRQ1 0x72 #define PNP_IDX_IRQ1 0x72
#define PNP_IDX_DRQ0 0x74 #define PNP_IDX_DRQ0 0x74