Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.6.
  1/*
  2 * the definition file of cs5536 Virtual Support Module(VSM).
  3 * pci configuration space can be accessed through the VSM, so
  4 * there is no need of the MSR read/write now, except the spec.
  5 * MSR registers which are not implemented yet.
  6 *
  7 * Copyright (C) 2007 Lemote Inc.
  8 * Author : jlliu, liujl@lemote.com
  9 */
 10
 11#ifndef _CS5536_PCI_H
 12#define _CS5536_PCI_H
 13
 14#include <linux/types.h>
 15#include <linux/pci_regs.h>
 16
 17extern void cs5536_pci_conf_write4(int function, int reg, u32 value);
 18extern u32 cs5536_pci_conf_read4(int function, int reg);
 19
 20#define CS5536_ACC_INTR		9
 21#define CS5536_IDE_INTR		14
 22#define CS5536_USB_INTR		11
 23#define CS5536_MFGPT_INTR	5
 24#define CS5536_UART1_INTR	4
 25#define CS5536_UART2_INTR	3
 26
 27/************** PCI BUS DEVICE FUNCTION ***************/
 28
 29/*
 30 * PCI bus device function
 31 */
 32#define PCI_BUS_CS5536		0
 33#define PCI_IDSEL_CS5536	14
 34
 35/********** STANDARD PCI-2.2 EXPANSION ****************/
 36
 37/*
 38 * PCI configuration space
 39 * we have to virtualize the PCI configure space head, so we should
 40 * define the necessary IDs and some others.
 41 */
 42
 43/* CONFIG of PCI VENDOR ID*/
 44#define CFG_PCI_VENDOR_ID(mod_dev_id, sys_vendor_id) \
 45	(((mod_dev_id) << 16) | (sys_vendor_id))
 46
 47/* VENDOR ID */
 48#define CS5536_VENDOR_ID	0x1022
 49
 50/* DEVICE ID */
 51#define CS5536_ISA_DEVICE_ID		0x2090
 52#define CS5536_IDE_DEVICE_ID		0x209a
 53#define CS5536_ACC_DEVICE_ID		0x2093
 54#define CS5536_OHCI_DEVICE_ID		0x2094
 55#define CS5536_EHCI_DEVICE_ID		0x2095
 56
 57/* CLASS CODE : CLASS SUB-CLASS INTERFACE */
 58#define CS5536_ISA_CLASS_CODE		0x060100
 59#define CS5536_IDE_CLASS_CODE		0x010180
 60#define CS5536_ACC_CLASS_CODE		0x040100
 61#define CS5536_OHCI_CLASS_CODE		0x0C0310
 62#define CS5536_EHCI_CLASS_CODE		0x0C0320
 63
 64/* BHLC : BIST HEADER-TYPE LATENCY-TIMER CACHE-LINE-SIZE */
 65
 66#define CFG_PCI_CACHE_LINE_SIZE(header_type, latency_timer)	\
 67	((PCI_NONE_BIST << 24) | ((header_type) << 16) \
 68		| ((latency_timer) << 8) | PCI_NORMAL_CACHE_LINE_SIZE);
 69
 70#define PCI_NONE_BIST			0x00	/* RO not implemented yet. */
 71#define PCI_BRIDGE_HEADER_TYPE		0x80	/* RO */
 72#define PCI_NORMAL_HEADER_TYPE		0x00
 73#define PCI_NORMAL_LATENCY_TIMER	0x00
 74#define PCI_NORMAL_CACHE_LINE_SIZE	0x08	/* RW */
 75
 76/* BAR */
 77#define PCI_BAR0_REG			0x10
 78#define PCI_BAR1_REG			0x14
 79#define PCI_BAR2_REG			0x18
 80#define PCI_BAR3_REG			0x1c
 81#define PCI_BAR4_REG			0x20
 82#define PCI_BAR5_REG			0x24
 83#define PCI_BAR_COUNT			6
 84#define PCI_BAR_RANGE_MASK		0xFFFFFFFF
 85
 86/* CARDBUS CIS POINTER */
 87#define PCI_CARDBUS_CIS_POINTER		0x00000000
 88
 89/* SUBSYSTEM VENDOR ID	*/
 90#define CS5536_SUB_VENDOR_ID		CS5536_VENDOR_ID
 91
 92/* SUBSYSTEM ID */
 93#define CS5536_ISA_SUB_ID		CS5536_ISA_DEVICE_ID
 94#define CS5536_IDE_SUB_ID		CS5536_IDE_DEVICE_ID
 95#define CS5536_ACC_SUB_ID		CS5536_ACC_DEVICE_ID
 96#define CS5536_OHCI_SUB_ID		CS5536_OHCI_DEVICE_ID
 97#define CS5536_EHCI_SUB_ID		CS5536_EHCI_DEVICE_ID
 98
 99/* EXPANSION ROM BAR */
100#define PCI_EXPANSION_ROM_BAR		0x00000000
101
102/* CAPABILITIES POINTER */
103#define PCI_CAPLIST_POINTER		0x00000000
104#define PCI_CAPLIST_USB_POINTER		0x40
105/* INTERRUPT */
106
107#define CFG_PCI_INTERRUPT_LINE(pin, mod_intr) \
108	((PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | \
109		((pin) << 8) | (mod_intr))
110
111#define PCI_MAX_LATENCY			0x40
112#define PCI_MIN_GRANT			0x00
113#define PCI_DEFAULT_PIN			0x01
114
115/*********** EXPANSION PCI REG ************************/
116
117/*
118 * ISA EXPANSION
119 */
120#define PCI_UART1_INT_REG	0x50
121#define PCI_UART2_INT_REG	0x54
122#define PCI_ISA_FIXUP_REG	0x58
123
124/*
125 * IDE EXPANSION
126 */
127#define PCI_IDE_CFG_REG		0x40
128#define CS5536_IDE_FLASH_SIGNATURE	0xDEADBEEF
129#define PCI_IDE_DTC_REG		0x48
130#define PCI_IDE_CAST_REG	0x4C
131#define PCI_IDE_ETC_REG		0x50
132#define PCI_IDE_PM_REG		0x54
133#define PCI_IDE_INT_REG		0x60
134
135/*
136 * ACC EXPANSION
137 */
138#define PCI_ACC_INT_REG		0x50
139
140/*
141 * OHCI EXPANSION : INTTERUPT IS IMPLEMENTED BY THE OHCI
142 */
143#define PCI_OHCI_PM_REG		0x40
144#define PCI_OHCI_INT_REG	0x50
145
146/*
147 * EHCI EXPANSION
148 */
149#define PCI_EHCI_LEGSMIEN_REG	0x50
150#define PCI_EHCI_LEGSMISTS_REG	0x54
151#define PCI_EHCI_FLADJ_REG	0x60
152
153#endif				/* _CS5536_PCI_H_ */