| /* | 
 |  * the definition file of cs5536 Virtual Support Module(VSM). | 
 |  * pci configuration space can be accessed through the VSM, so | 
 |  * there is no need of the MSR read/write now, except the spec. | 
 |  * MSR registers which are not implemented yet. | 
 |  * | 
 |  * Copyright (C) 2007 Lemote Inc. | 
 |  * Author : jlliu, liujl@lemote.com | 
 |  */ | 
 |  | 
 | #ifndef	_CS5536_PCI_H | 
 | #define	_CS5536_PCI_H | 
 |  | 
 | #include <linux/types.h> | 
 | #include <linux/pci_regs.h> | 
 |  | 
 | extern void cs5536_pci_conf_write4(int function, int reg, u32 value); | 
 | extern u32 cs5536_pci_conf_read4(int function, int reg); | 
 |  | 
 | #define	CS5536_ACC_INTR		9 | 
 | #define	CS5536_IDE_INTR		14 | 
 | #define	CS5536_USB_INTR		11 | 
 | #define	CS5536_MFGPT_INTR	5 | 
 | #define	CS5536_UART1_INTR	4 | 
 | #define	CS5536_UART2_INTR	3 | 
 |  | 
 | /************** PCI BUS DEVICE FUNCTION ***************/ | 
 |  | 
 | /* | 
 |  * PCI bus device function | 
 |  */ | 
 | #define	PCI_BUS_CS5536		0 | 
 | #define	PCI_IDSEL_CS5536	14 | 
 |  | 
 | /********** STANDARD PCI-2.2 EXPANSION ****************/ | 
 |  | 
 | /* | 
 |  * PCI configuration space | 
 |  * we have to virtualize the PCI configure space head, so we should | 
 |  * define the necessary IDs and some others. | 
 |  */ | 
 |  | 
 | /* CONFIG of PCI VENDOR ID*/ | 
 | #define CFG_PCI_VENDOR_ID(mod_dev_id, sys_vendor_id) \ | 
 | 	(((mod_dev_id) << 16) | (sys_vendor_id)) | 
 |  | 
 | /* VENDOR ID */ | 
 | #define	CS5536_VENDOR_ID	0x1022 | 
 |  | 
 | /* DEVICE ID */ | 
 | #define	CS5536_ISA_DEVICE_ID		0x2090 | 
 | #define	CS5536_IDE_DEVICE_ID		0x209a | 
 | #define	CS5536_ACC_DEVICE_ID		0x2093 | 
 | #define	CS5536_OHCI_DEVICE_ID		0x2094 | 
 | #define	CS5536_EHCI_DEVICE_ID		0x2095 | 
 |  | 
 | /* CLASS CODE : CLASS SUB-CLASS INTERFACE */ | 
 | #define	CS5536_ISA_CLASS_CODE		0x060100 | 
 | #define CS5536_IDE_CLASS_CODE		0x010180 | 
 | #define	CS5536_ACC_CLASS_CODE		0x040100 | 
 | #define	CS5536_OHCI_CLASS_CODE		0x0C0310 | 
 | #define	CS5536_EHCI_CLASS_CODE		0x0C0320 | 
 |  | 
 | /* BHLC : BIST HEADER-TYPE LATENCY-TIMER CACHE-LINE-SIZE */ | 
 |  | 
 | #define CFG_PCI_CACHE_LINE_SIZE(header_type, latency_timer)	\ | 
 | 	((PCI_NONE_BIST << 24) | ((header_type) << 16) \ | 
 | 		| ((latency_timer) << 8) | PCI_NORMAL_CACHE_LINE_SIZE); | 
 |  | 
 | #define	PCI_NONE_BIST			0x00	/* RO not implemented yet. */ | 
 | #define	PCI_BRIDGE_HEADER_TYPE		0x80	/* RO */ | 
 | #define	PCI_NORMAL_HEADER_TYPE		0x00 | 
 | #define	PCI_NORMAL_LATENCY_TIMER	0x00 | 
 | #define	PCI_NORMAL_CACHE_LINE_SIZE	0x08	/* RW */ | 
 |  | 
 | /* BAR */ | 
 | #define	PCI_BAR0_REG			0x10 | 
 | #define	PCI_BAR1_REG			0x14 | 
 | #define	PCI_BAR2_REG			0x18 | 
 | #define	PCI_BAR3_REG			0x1c | 
 | #define	PCI_BAR4_REG			0x20 | 
 | #define	PCI_BAR5_REG			0x24 | 
 | #define	PCI_BAR_COUNT			6 | 
 | #define	PCI_BAR_RANGE_MASK		0xFFFFFFFF | 
 |  | 
 | /* CARDBUS CIS POINTER */ | 
 | #define	PCI_CARDBUS_CIS_POINTER		0x00000000 | 
 |  | 
 | /* SUBSYSTEM VENDOR ID  */ | 
 | #define	CS5536_SUB_VENDOR_ID		CS5536_VENDOR_ID | 
 |  | 
 | /* SUBSYSTEM ID */ | 
 | #define	CS5536_ISA_SUB_ID		CS5536_ISA_DEVICE_ID | 
 | #define	CS5536_IDE_SUB_ID		CS5536_IDE_DEVICE_ID | 
 | #define	CS5536_ACC_SUB_ID		CS5536_ACC_DEVICE_ID | 
 | #define	CS5536_OHCI_SUB_ID		CS5536_OHCI_DEVICE_ID | 
 | #define	CS5536_EHCI_SUB_ID		CS5536_EHCI_DEVICE_ID | 
 |  | 
 | /* EXPANSION ROM BAR */ | 
 | #define	PCI_EXPANSION_ROM_BAR		0x00000000 | 
 |  | 
 | /* CAPABILITIES POINTER */ | 
 | #define	PCI_CAPLIST_POINTER		0x00000000 | 
 | #define PCI_CAPLIST_USB_POINTER		0x40 | 
 | /* INTERRUPT */ | 
 |  | 
 | #define CFG_PCI_INTERRUPT_LINE(pin, mod_intr) \ | 
 | 	((PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | \ | 
 | 		((pin) << 8) | (mod_intr)) | 
 |  | 
 | #define	PCI_MAX_LATENCY			0x40 | 
 | #define	PCI_MIN_GRANT			0x00 | 
 | #define	PCI_DEFAULT_PIN			0x01 | 
 |  | 
 | /*********** EXPANSION PCI REG ************************/ | 
 |  | 
 | /* | 
 |  * ISA EXPANSION | 
 |  */ | 
 | #define	PCI_UART1_INT_REG 	0x50 | 
 | #define PCI_UART2_INT_REG	0x54 | 
 | #define	PCI_ISA_FIXUP_REG	0x58 | 
 |  | 
 | /* | 
 |  * IDE EXPANSION | 
 |  */ | 
 | #define	PCI_IDE_CFG_REG		0x40 | 
 | #define	CS5536_IDE_FLASH_SIGNATURE	0xDEADBEEF | 
 | #define	PCI_IDE_DTC_REG		0x48 | 
 | #define	PCI_IDE_CAST_REG	0x4C | 
 | #define	PCI_IDE_ETC_REG		0x50 | 
 | #define	PCI_IDE_PM_REG		0x54 | 
 | #define	PCI_IDE_INT_REG		0x60 | 
 |  | 
 | /* | 
 |  * ACC EXPANSION | 
 |  */ | 
 | #define	PCI_ACC_INT_REG		0x50 | 
 |  | 
 | /* | 
 |  * OHCI EXPANSION : INTTERUPT IS IMPLEMENTED BY THE OHCI | 
 |  */ | 
 | #define	PCI_OHCI_PM_REG		0x40 | 
 | #define	PCI_OHCI_INT_REG	0x50 | 
 |  | 
 | /* | 
 |  * EHCI EXPANSION | 
 |  */ | 
 | #define	PCI_EHCI_LEGSMIEN_REG	0x50 | 
 | #define	PCI_EHCI_LEGSMISTS_REG	0x54 | 
 | #define	PCI_EHCI_FLADJ_REG	0x60 | 
 |  | 
 | #endif				/* _CS5536_PCI_H_ */ |