162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * The header file of cs5536 south bridge. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2007 Lemote, Inc. 662306a36Sopenharmony_ci * Author : jlliu <liujl@lemote.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef _CS5536_H 1062306a36Sopenharmony_ci#define _CS5536_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <linux/types.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciextern void _rdmsr(u32 msr, u32 *hi, u32 *lo); 1562306a36Sopenharmony_ciextern void _wrmsr(u32 msr, u32 hi, u32 lo); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* 1862306a36Sopenharmony_ci * MSR module base 1962306a36Sopenharmony_ci */ 2062306a36Sopenharmony_ci#define CS5536_SB_MSR_BASE (0x00000000) 2162306a36Sopenharmony_ci#define CS5536_GLIU_MSR_BASE (0x10000000) 2262306a36Sopenharmony_ci#define CS5536_ILLEGAL_MSR_BASE (0x20000000) 2362306a36Sopenharmony_ci#define CS5536_USB_MSR_BASE (0x40000000) 2462306a36Sopenharmony_ci#define CS5536_IDE_MSR_BASE (0x60000000) 2562306a36Sopenharmony_ci#define CS5536_DIVIL_MSR_BASE (0x80000000) 2662306a36Sopenharmony_ci#define CS5536_ACC_MSR_BASE (0xa0000000) 2762306a36Sopenharmony_ci#define CS5536_UNUSED_MSR_BASE (0xc0000000) 2862306a36Sopenharmony_ci#define CS5536_GLCP_MSR_BASE (0xe0000000) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define SB_MSR_REG(offset) (CS5536_SB_MSR_BASE | (offset)) 3162306a36Sopenharmony_ci#define GLIU_MSR_REG(offset) (CS5536_GLIU_MSR_BASE | (offset)) 3262306a36Sopenharmony_ci#define ILLEGAL_MSR_REG(offset) (CS5536_ILLEGAL_MSR_BASE | (offset)) 3362306a36Sopenharmony_ci#define USB_MSR_REG(offset) (CS5536_USB_MSR_BASE | (offset)) 3462306a36Sopenharmony_ci#define IDE_MSR_REG(offset) (CS5536_IDE_MSR_BASE | (offset)) 3562306a36Sopenharmony_ci#define DIVIL_MSR_REG(offset) (CS5536_DIVIL_MSR_BASE | (offset)) 3662306a36Sopenharmony_ci#define ACC_MSR_REG(offset) (CS5536_ACC_MSR_BASE | (offset)) 3762306a36Sopenharmony_ci#define UNUSED_MSR_REG(offset) (CS5536_UNUSED_MSR_BASE | (offset)) 3862306a36Sopenharmony_ci#define GLCP_MSR_REG(offset) (CS5536_GLCP_MSR_BASE | (offset)) 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* 4162306a36Sopenharmony_ci * BAR SPACE OF VIRTUAL PCI : 4262306a36Sopenharmony_ci * range for pci probe use, length is the actual size. 4362306a36Sopenharmony_ci */ 4462306a36Sopenharmony_ci/* IO space for all DIVIL modules */ 4562306a36Sopenharmony_ci#define CS5536_IRQ_RANGE 0xffffffe0 /* USERD FOR PCI PROBE */ 4662306a36Sopenharmony_ci#define CS5536_IRQ_LENGTH 0x20 /* THE REGS ACTUAL LENGTH */ 4762306a36Sopenharmony_ci#define CS5536_SMB_RANGE 0xfffffff8 4862306a36Sopenharmony_ci#define CS5536_SMB_LENGTH 0x08 4962306a36Sopenharmony_ci#define CS5536_GPIO_RANGE 0xffffff00 5062306a36Sopenharmony_ci#define CS5536_GPIO_LENGTH 0x100 5162306a36Sopenharmony_ci#define CS5536_MFGPT_RANGE 0xffffffc0 5262306a36Sopenharmony_ci#define CS5536_MFGPT_LENGTH 0x40 5362306a36Sopenharmony_ci#define CS5536_ACPI_RANGE 0xffffffe0 5462306a36Sopenharmony_ci#define CS5536_ACPI_LENGTH 0x20 5562306a36Sopenharmony_ci#define CS5536_PMS_RANGE 0xffffff80 5662306a36Sopenharmony_ci#define CS5536_PMS_LENGTH 0x80 5762306a36Sopenharmony_ci/* IO space for IDE */ 5862306a36Sopenharmony_ci#define CS5536_IDE_RANGE 0xfffffff0 5962306a36Sopenharmony_ci#define CS5536_IDE_LENGTH 0x10 6062306a36Sopenharmony_ci/* IO space for ACC */ 6162306a36Sopenharmony_ci#define CS5536_ACC_RANGE 0xffffff80 6262306a36Sopenharmony_ci#define CS5536_ACC_LENGTH 0x80 6362306a36Sopenharmony_ci/* MEM space for ALL USB modules */ 6462306a36Sopenharmony_ci#define CS5536_OHCI_RANGE 0xfffff000 6562306a36Sopenharmony_ci#define CS5536_OHCI_LENGTH 0x1000 6662306a36Sopenharmony_ci#define CS5536_EHCI_RANGE 0xfffff000 6762306a36Sopenharmony_ci#define CS5536_EHCI_LENGTH 0x1000 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci/* 7062306a36Sopenharmony_ci * PCI MSR ACCESS 7162306a36Sopenharmony_ci */ 7262306a36Sopenharmony_ci#define PCI_MSR_CTRL 0xF0 7362306a36Sopenharmony_ci#define PCI_MSR_ADDR 0xF4 7462306a36Sopenharmony_ci#define PCI_MSR_DATA_LO 0xF8 7562306a36Sopenharmony_ci#define PCI_MSR_DATA_HI 0xFC 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci/**************** MSR *****************************/ 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci/* 8062306a36Sopenharmony_ci * GLIU STANDARD MSR 8162306a36Sopenharmony_ci */ 8262306a36Sopenharmony_ci#define GLIU_CAP 0x00 8362306a36Sopenharmony_ci#define GLIU_CONFIG 0x01 8462306a36Sopenharmony_ci#define GLIU_SMI 0x02 8562306a36Sopenharmony_ci#define GLIU_ERROR 0x03 8662306a36Sopenharmony_ci#define GLIU_PM 0x04 8762306a36Sopenharmony_ci#define GLIU_DIAG 0x05 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci/* 9062306a36Sopenharmony_ci * GLIU SPEC. MSR 9162306a36Sopenharmony_ci */ 9262306a36Sopenharmony_ci#define GLIU_P2D_BM0 0x20 9362306a36Sopenharmony_ci#define GLIU_P2D_BM1 0x21 9462306a36Sopenharmony_ci#define GLIU_P2D_BM2 0x22 9562306a36Sopenharmony_ci#define GLIU_P2D_BMK0 0x23 9662306a36Sopenharmony_ci#define GLIU_P2D_BMK1 0x24 9762306a36Sopenharmony_ci#define GLIU_P2D_BM3 0x25 9862306a36Sopenharmony_ci#define GLIU_P2D_BM4 0x26 9962306a36Sopenharmony_ci#define GLIU_COH 0x80 10062306a36Sopenharmony_ci#define GLIU_PAE 0x81 10162306a36Sopenharmony_ci#define GLIU_ARB 0x82 10262306a36Sopenharmony_ci#define GLIU_ASMI 0x83 10362306a36Sopenharmony_ci#define GLIU_AERR 0x84 10462306a36Sopenharmony_ci#define GLIU_DEBUG 0x85 10562306a36Sopenharmony_ci#define GLIU_PHY_CAP 0x86 10662306a36Sopenharmony_ci#define GLIU_NOUT_RESP 0x87 10762306a36Sopenharmony_ci#define GLIU_NOUT_WDATA 0x88 10862306a36Sopenharmony_ci#define GLIU_WHOAMI 0x8B 10962306a36Sopenharmony_ci#define GLIU_SLV_DIS 0x8C 11062306a36Sopenharmony_ci#define GLIU_IOD_BM0 0xE0 11162306a36Sopenharmony_ci#define GLIU_IOD_BM1 0xE1 11262306a36Sopenharmony_ci#define GLIU_IOD_BM2 0xE2 11362306a36Sopenharmony_ci#define GLIU_IOD_BM3 0xE3 11462306a36Sopenharmony_ci#define GLIU_IOD_BM4 0xE4 11562306a36Sopenharmony_ci#define GLIU_IOD_BM5 0xE5 11662306a36Sopenharmony_ci#define GLIU_IOD_BM6 0xE6 11762306a36Sopenharmony_ci#define GLIU_IOD_BM7 0xE7 11862306a36Sopenharmony_ci#define GLIU_IOD_BM8 0xE8 11962306a36Sopenharmony_ci#define GLIU_IOD_BM9 0xE9 12062306a36Sopenharmony_ci#define GLIU_IOD_SC0 0xEA 12162306a36Sopenharmony_ci#define GLIU_IOD_SC1 0xEB 12262306a36Sopenharmony_ci#define GLIU_IOD_SC2 0xEC 12362306a36Sopenharmony_ci#define GLIU_IOD_SC3 0xED 12462306a36Sopenharmony_ci#define GLIU_IOD_SC4 0xEE 12562306a36Sopenharmony_ci#define GLIU_IOD_SC5 0xEF 12662306a36Sopenharmony_ci#define GLIU_IOD_SC6 0xF0 12762306a36Sopenharmony_ci#define GLIU_IOD_SC7 0xF1 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci/* 13062306a36Sopenharmony_ci * SB STANDARD 13162306a36Sopenharmony_ci */ 13262306a36Sopenharmony_ci#define SB_CAP 0x00 13362306a36Sopenharmony_ci#define SB_CONFIG 0x01 13462306a36Sopenharmony_ci#define SB_SMI 0x02 13562306a36Sopenharmony_ci#define SB_ERROR 0x03 13662306a36Sopenharmony_ci#define SB_MAR_ERR_EN 0x00000001 13762306a36Sopenharmony_ci#define SB_TAR_ERR_EN 0x00000002 13862306a36Sopenharmony_ci#define SB_RSVD_BIT1 0x00000004 13962306a36Sopenharmony_ci#define SB_EXCEP_ERR_EN 0x00000008 14062306a36Sopenharmony_ci#define SB_SYSE_ERR_EN 0x00000010 14162306a36Sopenharmony_ci#define SB_PARE_ERR_EN 0x00000020 14262306a36Sopenharmony_ci#define SB_TAS_ERR_EN 0x00000040 14362306a36Sopenharmony_ci#define SB_MAR_ERR_FLAG 0x00010000 14462306a36Sopenharmony_ci#define SB_TAR_ERR_FLAG 0x00020000 14562306a36Sopenharmony_ci#define SB_RSVD_BIT2 0x00040000 14662306a36Sopenharmony_ci#define SB_EXCEP_ERR_FLAG 0x00080000 14762306a36Sopenharmony_ci#define SB_SYSE_ERR_FLAG 0x00100000 14862306a36Sopenharmony_ci#define SB_PARE_ERR_FLAG 0x00200000 14962306a36Sopenharmony_ci#define SB_TAS_ERR_FLAG 0x00400000 15062306a36Sopenharmony_ci#define SB_PM 0x04 15162306a36Sopenharmony_ci#define SB_DIAG 0x05 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci/* 15462306a36Sopenharmony_ci * SB SPEC. 15562306a36Sopenharmony_ci */ 15662306a36Sopenharmony_ci#define SB_CTRL 0x10 15762306a36Sopenharmony_ci#define SB_R0 0x20 15862306a36Sopenharmony_ci#define SB_R1 0x21 15962306a36Sopenharmony_ci#define SB_R2 0x22 16062306a36Sopenharmony_ci#define SB_R3 0x23 16162306a36Sopenharmony_ci#define SB_R4 0x24 16262306a36Sopenharmony_ci#define SB_R5 0x25 16362306a36Sopenharmony_ci#define SB_R6 0x26 16462306a36Sopenharmony_ci#define SB_R7 0x27 16562306a36Sopenharmony_ci#define SB_R8 0x28 16662306a36Sopenharmony_ci#define SB_R9 0x29 16762306a36Sopenharmony_ci#define SB_R10 0x2A 16862306a36Sopenharmony_ci#define SB_R11 0x2B 16962306a36Sopenharmony_ci#define SB_R12 0x2C 17062306a36Sopenharmony_ci#define SB_R13 0x2D 17162306a36Sopenharmony_ci#define SB_R14 0x2E 17262306a36Sopenharmony_ci#define SB_R15 0x2F 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci/* 17562306a36Sopenharmony_ci * GLCP STANDARD 17662306a36Sopenharmony_ci */ 17762306a36Sopenharmony_ci#define GLCP_CAP 0x00 17862306a36Sopenharmony_ci#define GLCP_CONFIG 0x01 17962306a36Sopenharmony_ci#define GLCP_SMI 0x02 18062306a36Sopenharmony_ci#define GLCP_ERROR 0x03 18162306a36Sopenharmony_ci#define GLCP_PM 0x04 18262306a36Sopenharmony_ci#define GLCP_DIAG 0x05 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci/* 18562306a36Sopenharmony_ci * GLCP SPEC. 18662306a36Sopenharmony_ci */ 18762306a36Sopenharmony_ci#define GLCP_CLK_DIS_DELAY 0x08 18862306a36Sopenharmony_ci#define GLCP_PM_CLK_DISABLE 0x09 18962306a36Sopenharmony_ci#define GLCP_GLB_PM 0x0B 19062306a36Sopenharmony_ci#define GLCP_DBG_OUT 0x0C 19162306a36Sopenharmony_ci#define GLCP_RSVD1 0x0D 19262306a36Sopenharmony_ci#define GLCP_SOFT_COM 0x0E 19362306a36Sopenharmony_ci#define SOFT_BAR_SMB_FLAG 0x00000001 19462306a36Sopenharmony_ci#define SOFT_BAR_GPIO_FLAG 0x00000002 19562306a36Sopenharmony_ci#define SOFT_BAR_MFGPT_FLAG 0x00000004 19662306a36Sopenharmony_ci#define SOFT_BAR_IRQ_FLAG 0x00000008 19762306a36Sopenharmony_ci#define SOFT_BAR_PMS_FLAG 0x00000010 19862306a36Sopenharmony_ci#define SOFT_BAR_ACPI_FLAG 0x00000020 19962306a36Sopenharmony_ci#define SOFT_BAR_IDE_FLAG 0x00000400 20062306a36Sopenharmony_ci#define SOFT_BAR_ACC_FLAG 0x00000800 20162306a36Sopenharmony_ci#define SOFT_BAR_OHCI_FLAG 0x00001000 20262306a36Sopenharmony_ci#define SOFT_BAR_EHCI_FLAG 0x00002000 20362306a36Sopenharmony_ci#define GLCP_RSVD2 0x0F 20462306a36Sopenharmony_ci#define GLCP_CLK_OFF 0x10 20562306a36Sopenharmony_ci#define GLCP_CLK_ACTIVE 0x11 20662306a36Sopenharmony_ci#define GLCP_CLK_DISABLE 0x12 20762306a36Sopenharmony_ci#define GLCP_CLK4ACK 0x13 20862306a36Sopenharmony_ci#define GLCP_SYS_RST 0x14 20962306a36Sopenharmony_ci#define GLCP_RSVD3 0x15 21062306a36Sopenharmony_ci#define GLCP_DBG_CLK_CTRL 0x16 21162306a36Sopenharmony_ci#define GLCP_CHIP_REV_ID 0x17 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci/* PIC */ 21462306a36Sopenharmony_ci#define PIC_YSEL_LOW 0x20 21562306a36Sopenharmony_ci#define PIC_YSEL_LOW_USB_SHIFT 8 21662306a36Sopenharmony_ci#define PIC_YSEL_LOW_ACC_SHIFT 16 21762306a36Sopenharmony_ci#define PIC_YSEL_LOW_FLASH_SHIFT 24 21862306a36Sopenharmony_ci#define PIC_YSEL_HIGH 0x21 21962306a36Sopenharmony_ci#define PIC_ZSEL_LOW 0x22 22062306a36Sopenharmony_ci#define PIC_ZSEL_HIGH 0x23 22162306a36Sopenharmony_ci#define PIC_IRQM_PRIM 0x24 22262306a36Sopenharmony_ci#define PIC_IRQM_LPC 0x25 22362306a36Sopenharmony_ci#define PIC_XIRR_STS_LOW 0x26 22462306a36Sopenharmony_ci#define PIC_XIRR_STS_HIGH 0x27 22562306a36Sopenharmony_ci#define PCI_SHDW 0x34 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci/* 22862306a36Sopenharmony_ci * DIVIL STANDARD 22962306a36Sopenharmony_ci */ 23062306a36Sopenharmony_ci#define DIVIL_CAP 0x00 23162306a36Sopenharmony_ci#define DIVIL_CONFIG 0x01 23262306a36Sopenharmony_ci#define DIVIL_SMI 0x02 23362306a36Sopenharmony_ci#define DIVIL_ERROR 0x03 23462306a36Sopenharmony_ci#define DIVIL_PM 0x04 23562306a36Sopenharmony_ci#define DIVIL_DIAG 0x05 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci/* 23862306a36Sopenharmony_ci * DIVIL SPEC. 23962306a36Sopenharmony_ci */ 24062306a36Sopenharmony_ci#define DIVIL_LBAR_IRQ 0x08 24162306a36Sopenharmony_ci#define DIVIL_LBAR_KEL 0x09 24262306a36Sopenharmony_ci#define DIVIL_LBAR_SMB 0x0B 24362306a36Sopenharmony_ci#define DIVIL_LBAR_GPIO 0x0C 24462306a36Sopenharmony_ci#define DIVIL_LBAR_MFGPT 0x0D 24562306a36Sopenharmony_ci#define DIVIL_LBAR_ACPI 0x0E 24662306a36Sopenharmony_ci#define DIVIL_LBAR_PMS 0x0F 24762306a36Sopenharmony_ci#define DIVIL_LEG_IO 0x14 24862306a36Sopenharmony_ci#define DIVIL_BALL_OPTS 0x15 24962306a36Sopenharmony_ci#define DIVIL_SOFT_IRQ 0x16 25062306a36Sopenharmony_ci#define DIVIL_SOFT_RESET 0x17 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci/* MFGPT */ 25362306a36Sopenharmony_ci#define MFGPT_IRQ 0x28 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci/* 25662306a36Sopenharmony_ci * IDE STANDARD 25762306a36Sopenharmony_ci */ 25862306a36Sopenharmony_ci#define IDE_CAP 0x00 25962306a36Sopenharmony_ci#define IDE_CONFIG 0x01 26062306a36Sopenharmony_ci#define IDE_SMI 0x02 26162306a36Sopenharmony_ci#define IDE_ERROR 0x03 26262306a36Sopenharmony_ci#define IDE_PM 0x04 26362306a36Sopenharmony_ci#define IDE_DIAG 0x05 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci/* 26662306a36Sopenharmony_ci * IDE SPEC. 26762306a36Sopenharmony_ci */ 26862306a36Sopenharmony_ci#define IDE_IO_BAR 0x08 26962306a36Sopenharmony_ci#define IDE_CFG 0x10 27062306a36Sopenharmony_ci#define IDE_DTC 0x12 27162306a36Sopenharmony_ci#define IDE_CAST 0x13 27262306a36Sopenharmony_ci#define IDE_ETC 0x14 27362306a36Sopenharmony_ci#define IDE_INTERNAL_PM 0x15 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci/* 27662306a36Sopenharmony_ci * ACC STANDARD 27762306a36Sopenharmony_ci */ 27862306a36Sopenharmony_ci#define ACC_CAP 0x00 27962306a36Sopenharmony_ci#define ACC_CONFIG 0x01 28062306a36Sopenharmony_ci#define ACC_SMI 0x02 28162306a36Sopenharmony_ci#define ACC_ERROR 0x03 28262306a36Sopenharmony_ci#define ACC_PM 0x04 28362306a36Sopenharmony_ci#define ACC_DIAG 0x05 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci/* 28662306a36Sopenharmony_ci * USB STANDARD 28762306a36Sopenharmony_ci */ 28862306a36Sopenharmony_ci#define USB_CAP 0x00 28962306a36Sopenharmony_ci#define USB_CONFIG 0x01 29062306a36Sopenharmony_ci#define USB_SMI 0x02 29162306a36Sopenharmony_ci#define USB_ERROR 0x03 29262306a36Sopenharmony_ci#define USB_PM 0x04 29362306a36Sopenharmony_ci#define USB_DIAG 0x05 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci/* 29662306a36Sopenharmony_ci * USB SPEC. 29762306a36Sopenharmony_ci */ 29862306a36Sopenharmony_ci#define USB_OHCI 0x08 29962306a36Sopenharmony_ci#define USB_EHCI 0x09 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci/****************** NATIVE ***************************/ 30262306a36Sopenharmony_ci/* GPIO : I/O SPACE; REG : 32BITS */ 30362306a36Sopenharmony_ci#define GPIOL_OUT_VAL 0x00 30462306a36Sopenharmony_ci#define GPIOL_OUT_EN 0x04 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci#endif /* _CS5536_H */ 307