12b605154SSimon Glass /* 22b605154SSimon Glass * Copyright (c) 2014 Google, Inc 32b605154SSimon Glass * 42b605154SSimon Glass * From Coreboot src/southbridge/intel/bd82x6x/pch.h 52b605154SSimon Glass * 62b605154SSimon Glass * Copyright (C) 2008-2009 coresystems GmbH 72b605154SSimon Glass * Copyright (C) 2012 The Chromium OS Authors. All rights reserved. 82b605154SSimon Glass * 92b605154SSimon Glass * SPDX-License-Identifier: GPL-2.0 102b605154SSimon Glass */ 112b605154SSimon Glass 122b605154SSimon Glass #ifndef _ASM_ARCH_PCH_H 132b605154SSimon Glass #define _ASM_ARCH_PCH_H 142b605154SSimon Glass 152b605154SSimon Glass #include <pci.h> 162b605154SSimon Glass 178c74a573SSimon Glass /* PCH types */ 188c74a573SSimon Glass #define PCH_TYPE_CPT 0x1c /* CougarPoint */ 198c74a573SSimon Glass #define PCH_TYPE_PPT 0x1e /* IvyBridge */ 208c74a573SSimon Glass 218c74a573SSimon Glass /* PCH stepping values for LPC device */ 228c74a573SSimon Glass #define PCH_STEP_A0 0 238c74a573SSimon Glass #define PCH_STEP_A1 1 248c74a573SSimon Glass #define PCH_STEP_B0 2 258c74a573SSimon Glass #define PCH_STEP_B1 3 268c74a573SSimon Glass #define PCH_STEP_B2 4 278c74a573SSimon Glass #define PCH_STEP_B3 5 288e0df066SSimon Glass #define DEFAULT_GPIOBASE 0x0480 298e0df066SSimon Glass #define DEFAULT_PMBASE 0x0500 308e0df066SSimon Glass 318e0df066SSimon Glass #define SMBUS_IO_BASE 0x0400 328e0df066SSimon Glass 338c74a573SSimon Glass #define MAINBOARD_POWER_OFF 0 348c74a573SSimon Glass #define MAINBOARD_POWER_ON 1 358c74a573SSimon Glass #define MAINBOARD_POWER_KEEP 2 368c74a573SSimon Glass 374e7a6acaSSimon Glass /* PCI Configuration Space (D30:F0): PCI2PCI */ 384e7a6acaSSimon Glass #define PSTS 0x06 394e7a6acaSSimon Glass #define SMLT 0x1b 404e7a6acaSSimon Glass #define SECSTS 0x1e 414e7a6acaSSimon Glass #define INTR 0x3c 424e7a6acaSSimon Glass #define BCTRL 0x3e 434e7a6acaSSimon Glass #define SBR (1 << 6) 444e7a6acaSSimon Glass #define SEE (1 << 1) 454e7a6acaSSimon Glass #define PERE (1 << 0) 464e7a6acaSSimon Glass 478e0df066SSimon Glass #define PCH_EHCI1_DEV PCI_BDF(0, 0x1d, 0) 488e0df066SSimon Glass #define PCH_EHCI2_DEV PCI_BDF(0, 0x1a, 0) 498e0df066SSimon Glass #define PCH_XHCI_DEV PCI_BDF(0, 0x14, 0) 508e0df066SSimon Glass #define PCH_ME_DEV PCI_BDF(0, 0x16, 0) 518e0df066SSimon Glass #define PCH_PCIE_DEV_SLOT 28 528e0df066SSimon Glass 538e0df066SSimon Glass #define PCH_DEV PCI_BDF(0, 0, 0) 548e0df066SSimon Glass #define PCH_VIDEO_DEV PCI_BDF(0, 2, 0) 558e0df066SSimon Glass 562b605154SSimon Glass /* PCI Configuration Space (D31:F0): LPC */ 572b605154SSimon Glass #define PCH_LPC_DEV PCI_BDF(0, 0x1f, 0) 588c74a573SSimon Glass #define SERIRQ_CNTL 0x64 598c74a573SSimon Glass 608c74a573SSimon Glass #define GEN_PMCON_1 0xa0 618c74a573SSimon Glass #define GEN_PMCON_2 0xa2 628c74a573SSimon Glass #define GEN_PMCON_3 0xa4 638c74a573SSimon Glass #define ETR3 0xac 648c74a573SSimon Glass #define ETR3_CWORWRE (1 << 18) 658c74a573SSimon Glass #define ETR3_CF9GR (1 << 20) 668c74a573SSimon Glass 678c74a573SSimon Glass /* GEN_PMCON_3 bits */ 688c74a573SSimon Glass #define RTC_BATTERY_DEAD (1 << 2) 698c74a573SSimon Glass #define RTC_POWER_FAILED (1 << 1) 708c74a573SSimon Glass #define SLEEP_AFTER_POWER_FAIL (1 << 0) 718c74a573SSimon Glass 728c74a573SSimon Glass #define BIOS_CNTL 0xDC 738c74a573SSimon Glass #define GPIO_BASE 0x48 /* LPC GPIO Base Address Register */ 748c74a573SSimon Glass #define GPIO_CNTL 0x4C /* LPC GPIO Control Register */ 758c74a573SSimon Glass #define GPIO_ROUT 0xb8 768c74a573SSimon Glass 778c74a573SSimon Glass #define PIRQA_ROUT 0x60 788c74a573SSimon Glass #define PIRQB_ROUT 0x61 798c74a573SSimon Glass #define PIRQC_ROUT 0x62 808c74a573SSimon Glass #define PIRQD_ROUT 0x63 818c74a573SSimon Glass #define PIRQE_ROUT 0x68 828c74a573SSimon Glass #define PIRQF_ROUT 0x69 838c74a573SSimon Glass #define PIRQG_ROUT 0x6A 848c74a573SSimon Glass #define PIRQH_ROUT 0x6B 852b605154SSimon Glass 8665dd74a6SSimon Glass #define GEN_PMCON_1 0xa0 8765dd74a6SSimon Glass #define GEN_PMCON_2 0xa2 8865dd74a6SSimon Glass #define GEN_PMCON_3 0xa4 8965dd74a6SSimon Glass #define ETR3 0xac 9065dd74a6SSimon Glass #define ETR3_CWORWRE (1 << 18) 9165dd74a6SSimon Glass #define ETR3_CF9GR (1 << 20) 9265dd74a6SSimon Glass 938e0df066SSimon Glass #define PMBASE 0x40 948e0df066SSimon Glass #define ACPI_CNTL 0x44 958e0df066SSimon Glass #define BIOS_CNTL 0xDC 968e0df066SSimon Glass #define GPIO_BASE 0x48 /* LPC GPIO Base Address Register */ 978e0df066SSimon Glass #define GPIO_CNTL 0x4C /* LPC GPIO Control Register */ 988e0df066SSimon Glass #define GPIO_ROUT 0xb8 998e0df066SSimon Glass 1003ac83935SSimon Glass /* PCI Configuration Space (D31:F1): IDE */ 1013ac83935SSimon Glass #define PCH_IDE_DEV PCI_BDF(0, 0x1f, 1) 1023ac83935SSimon Glass #define PCH_SATA_DEV PCI_BDF(0, 0x1f, 2) 1033ac83935SSimon Glass #define PCH_SATA2_DEV PCI_BDF(0, 0x1f, 5) 1043ac83935SSimon Glass 1053ac83935SSimon Glass #define IDE_SDMA_CNT 0x48 /* Synchronous DMA control */ 1063ac83935SSimon Glass #define IDE_SSDE1 (1 << 3) 1073ac83935SSimon Glass #define IDE_SSDE0 (1 << 2) 1083ac83935SSimon Glass #define IDE_PSDE1 (1 << 1) 1093ac83935SSimon Glass #define IDE_PSDE0 (1 << 0) 1103ac83935SSimon Glass 1113ac83935SSimon Glass #define IDE_SDMA_TIM 0x4a 1123ac83935SSimon Glass 1133ac83935SSimon Glass #define IDE_CONFIG 0x54 /* IDE I/O Configuration Register */ 1143ac83935SSimon Glass #define SIG_MODE_SEC_NORMAL (0 << 18) 1153ac83935SSimon Glass #define SIG_MODE_SEC_TRISTATE (1 << 18) 1163ac83935SSimon Glass #define SIG_MODE_SEC_DRIVELOW (2 << 18) 1173ac83935SSimon Glass #define SIG_MODE_PRI_NORMAL (0 << 16) 1183ac83935SSimon Glass #define SIG_MODE_PRI_TRISTATE (1 << 16) 1193ac83935SSimon Glass #define SIG_MODE_PRI_DRIVELOW (2 << 16) 1203ac83935SSimon Glass #define FAST_SCB1 (1 << 15) 1213ac83935SSimon Glass #define FAST_SCB0 (1 << 14) 1223ac83935SSimon Glass #define FAST_PCB1 (1 << 13) 1233ac83935SSimon Glass #define FAST_PCB0 (1 << 12) 1243ac83935SSimon Glass #define SCB1 (1 << 3) 1253ac83935SSimon Glass #define SCB0 (1 << 2) 1263ac83935SSimon Glass #define PCB1 (1 << 1) 1273ac83935SSimon Glass #define PCB0 (1 << 0) 1283ac83935SSimon Glass 1293ac83935SSimon Glass #define SATA_SIRI 0xa0 /* SATA Indexed Register Index */ 1303ac83935SSimon Glass #define SATA_SIRD 0xa4 /* SATA Indexed Register Data */ 1313ac83935SSimon Glass #define SATA_SP 0xd0 /* Scratchpad */ 1323ac83935SSimon Glass 1333ac83935SSimon Glass /* SATA IOBP Registers */ 1343ac83935SSimon Glass #define SATA_IOBP_SP0G3IR 0xea000151 1353ac83935SSimon Glass #define SATA_IOBP_SP1G3IR 0xea000051 1363ac83935SSimon Glass 137f5fbbe95SSimon Glass #define VCH 0x0000 /* 32bit */ 138f5fbbe95SSimon Glass #define VCAP1 0x0004 /* 32bit */ 139f5fbbe95SSimon Glass #define VCAP2 0x0008 /* 32bit */ 140f5fbbe95SSimon Glass #define PVC 0x000c /* 16bit */ 141f5fbbe95SSimon Glass #define PVS 0x000e /* 16bit */ 142f5fbbe95SSimon Glass 143f5fbbe95SSimon Glass #define V0CAP 0x0010 /* 32bit */ 144f5fbbe95SSimon Glass #define V0CTL 0x0014 /* 32bit */ 145f5fbbe95SSimon Glass #define V0STS 0x001a /* 16bit */ 146f5fbbe95SSimon Glass 147f5fbbe95SSimon Glass #define V1CAP 0x001c /* 32bit */ 148f5fbbe95SSimon Glass #define V1CTL 0x0020 /* 32bit */ 149f5fbbe95SSimon Glass #define V1STS 0x0026 /* 16bit */ 150f5fbbe95SSimon Glass 151f5fbbe95SSimon Glass #define RCTCL 0x0100 /* 32bit */ 152f5fbbe95SSimon Glass #define ESD 0x0104 /* 32bit */ 153f5fbbe95SSimon Glass #define ULD 0x0110 /* 32bit */ 154f5fbbe95SSimon Glass #define ULBA 0x0118 /* 64bit */ 155f5fbbe95SSimon Glass 156f5fbbe95SSimon Glass #define RP1D 0x0120 /* 32bit */ 157f5fbbe95SSimon Glass #define RP1BA 0x0128 /* 64bit */ 158f5fbbe95SSimon Glass #define RP2D 0x0130 /* 32bit */ 159f5fbbe95SSimon Glass #define RP2BA 0x0138 /* 64bit */ 160f5fbbe95SSimon Glass #define RP3D 0x0140 /* 32bit */ 161f5fbbe95SSimon Glass #define RP3BA 0x0148 /* 64bit */ 162f5fbbe95SSimon Glass #define RP4D 0x0150 /* 32bit */ 163f5fbbe95SSimon Glass #define RP4BA 0x0158 /* 64bit */ 164f5fbbe95SSimon Glass #define HDD 0x0160 /* 32bit */ 165f5fbbe95SSimon Glass #define HDBA 0x0168 /* 64bit */ 166f5fbbe95SSimon Glass #define RP5D 0x0170 /* 32bit */ 167f5fbbe95SSimon Glass #define RP5BA 0x0178 /* 64bit */ 168f5fbbe95SSimon Glass #define RP6D 0x0180 /* 32bit */ 169f5fbbe95SSimon Glass #define RP6BA 0x0188 /* 64bit */ 170f5fbbe95SSimon Glass 171f5fbbe95SSimon Glass #define RPC 0x0400 /* 32bit */ 172f5fbbe95SSimon Glass #define RPFN 0x0404 /* 32bit */ 173f5fbbe95SSimon Glass 17465dd74a6SSimon Glass #define TRSR 0x1e00 /* 8bit */ 17565dd74a6SSimon Glass #define TRCR 0x1e10 /* 64bit */ 17665dd74a6SSimon Glass #define TWDR 0x1e18 /* 64bit */ 17765dd74a6SSimon Glass 17865dd74a6SSimon Glass #define IOTR0 0x1e80 /* 64bit */ 17965dd74a6SSimon Glass #define IOTR1 0x1e88 /* 64bit */ 18065dd74a6SSimon Glass #define IOTR2 0x1e90 /* 64bit */ 18165dd74a6SSimon Glass #define IOTR3 0x1e98 /* 64bit */ 18265dd74a6SSimon Glass 18365dd74a6SSimon Glass #define TCTL 0x3000 /* 8bit */ 18465dd74a6SSimon Glass 18565dd74a6SSimon Glass #define NOINT 0 18665dd74a6SSimon Glass #define INTA 1 18765dd74a6SSimon Glass #define INTB 2 18865dd74a6SSimon Glass #define INTC 3 18965dd74a6SSimon Glass #define INTD 4 19065dd74a6SSimon Glass 19165dd74a6SSimon Glass #define DIR_IDR 12 /* Interrupt D Pin Offset */ 19265dd74a6SSimon Glass #define DIR_ICR 8 /* Interrupt C Pin Offset */ 19365dd74a6SSimon Glass #define DIR_IBR 4 /* Interrupt B Pin Offset */ 19465dd74a6SSimon Glass #define DIR_IAR 0 /* Interrupt A Pin Offset */ 19565dd74a6SSimon Glass 19665dd74a6SSimon Glass #define PIRQA 0 19765dd74a6SSimon Glass #define PIRQB 1 19865dd74a6SSimon Glass #define PIRQC 2 19965dd74a6SSimon Glass #define PIRQD 3 20065dd74a6SSimon Glass #define PIRQE 4 20165dd74a6SSimon Glass #define PIRQF 5 20265dd74a6SSimon Glass #define PIRQG 6 20365dd74a6SSimon Glass #define PIRQH 7 20465dd74a6SSimon Glass 20565dd74a6SSimon Glass /* IO Buffer Programming */ 20665dd74a6SSimon Glass #define IOBPIRI 0x2330 20765dd74a6SSimon Glass #define IOBPD 0x2334 20865dd74a6SSimon Glass #define IOBPS 0x2338 20965dd74a6SSimon Glass #define IOBPS_RW_BX ((1 << 9)|(1 << 10)) 21065dd74a6SSimon Glass #define IOBPS_WRITE_AX ((1 << 9)|(1 << 10)) 21165dd74a6SSimon Glass #define IOBPS_READ_AX ((1 << 8)|(1 << 9)|(1 << 10)) 21265dd74a6SSimon Glass 21365dd74a6SSimon Glass #define D31IP 0x3100 /* 32bit */ 21465dd74a6SSimon Glass #define D31IP_TTIP 24 /* Thermal Throttle Pin */ 21565dd74a6SSimon Glass #define D31IP_SIP2 20 /* SATA Pin 2 */ 21665dd74a6SSimon Glass #define D31IP_SMIP 12 /* SMBUS Pin */ 21765dd74a6SSimon Glass #define D31IP_SIP 8 /* SATA Pin */ 21865dd74a6SSimon Glass #define D30IP 0x3104 /* 32bit */ 21965dd74a6SSimon Glass #define D30IP_PIP 0 /* PCI Bridge Pin */ 22065dd74a6SSimon Glass #define D29IP 0x3108 /* 32bit */ 22165dd74a6SSimon Glass #define D29IP_E1P 0 /* EHCI #1 Pin */ 22265dd74a6SSimon Glass #define D28IP 0x310c /* 32bit */ 22365dd74a6SSimon Glass #define D28IP_P8IP 28 /* PCI Express Port 8 */ 22465dd74a6SSimon Glass #define D28IP_P7IP 24 /* PCI Express Port 7 */ 22565dd74a6SSimon Glass #define D28IP_P6IP 20 /* PCI Express Port 6 */ 22665dd74a6SSimon Glass #define D28IP_P5IP 16 /* PCI Express Port 5 */ 22765dd74a6SSimon Glass #define D28IP_P4IP 12 /* PCI Express Port 4 */ 22865dd74a6SSimon Glass #define D28IP_P3IP 8 /* PCI Express Port 3 */ 22965dd74a6SSimon Glass #define D28IP_P2IP 4 /* PCI Express Port 2 */ 23065dd74a6SSimon Glass #define D28IP_P1IP 0 /* PCI Express Port 1 */ 23165dd74a6SSimon Glass #define D27IP 0x3110 /* 32bit */ 23265dd74a6SSimon Glass #define D27IP_ZIP 0 /* HD Audio Pin */ 23365dd74a6SSimon Glass #define D26IP 0x3114 /* 32bit */ 23465dd74a6SSimon Glass #define D26IP_E2P 0 /* EHCI #2 Pin */ 23565dd74a6SSimon Glass #define D25IP 0x3118 /* 32bit */ 23665dd74a6SSimon Glass #define D25IP_LIP 0 /* GbE LAN Pin */ 23765dd74a6SSimon Glass #define D22IP 0x3124 /* 32bit */ 23865dd74a6SSimon Glass #define D22IP_KTIP 12 /* KT Pin */ 23965dd74a6SSimon Glass #define D22IP_IDERIP 8 /* IDE-R Pin */ 24065dd74a6SSimon Glass #define D22IP_MEI2IP 4 /* MEI #2 Pin */ 24165dd74a6SSimon Glass #define D22IP_MEI1IP 0 /* MEI #1 Pin */ 24265dd74a6SSimon Glass #define D20IP 0x3128 /* 32bit */ 24365dd74a6SSimon Glass #define D20IP_XHCIIP 0 24465dd74a6SSimon Glass #define D31IR 0x3140 /* 16bit */ 24565dd74a6SSimon Glass #define D30IR 0x3142 /* 16bit */ 24665dd74a6SSimon Glass #define D29IR 0x3144 /* 16bit */ 24765dd74a6SSimon Glass #define D28IR 0x3146 /* 16bit */ 24865dd74a6SSimon Glass #define D27IR 0x3148 /* 16bit */ 24965dd74a6SSimon Glass #define D26IR 0x314c /* 16bit */ 25065dd74a6SSimon Glass #define D25IR 0x3150 /* 16bit */ 25165dd74a6SSimon Glass #define D22IR 0x315c /* 16bit */ 25265dd74a6SSimon Glass #define D20IR 0x3160 /* 16bit */ 25365dd74a6SSimon Glass #define OIC 0x31fe /* 16bit */ 25465dd74a6SSimon Glass 255f5fbbe95SSimon Glass #define SPI_FREQ_SWSEQ 0x3893 256f5fbbe95SSimon Glass #define SPI_DESC_COMP0 0x38b0 257f5fbbe95SSimon Glass #define SPI_FREQ_WR_ERA 0x38b4 258f5fbbe95SSimon Glass 25965dd74a6SSimon Glass #define DIR_ROUTE(a, b, c, d) \ 26065dd74a6SSimon Glass (((d) << DIR_IDR) | ((c) << DIR_ICR) | \ 26165dd74a6SSimon Glass ((b) << DIR_IBR) | ((a) << DIR_IAR)) 26265dd74a6SSimon Glass 263f5fbbe95SSimon Glass #define HPTC 0x3404 /* 32bit */ 264f5fbbe95SSimon Glass #define BUC 0x3414 /* 32bit */ 265f5fbbe95SSimon Glass #define PCH_DISABLE_GBE (1 << 5) 266f5fbbe95SSimon Glass #define FD 0x3418 /* 32bit */ 267f5fbbe95SSimon Glass #define DISPBDF 0x3424 /* 16bit */ 268f5fbbe95SSimon Glass #define FD2 0x3428 /* 32bit */ 269f5fbbe95SSimon Glass #define CG 0x341c /* 32bit */ 270f5fbbe95SSimon Glass 27165dd74a6SSimon Glass /* Function Disable 1 RCBA 0x3418 */ 27265dd74a6SSimon Glass #define PCH_DISABLE_ALWAYS ((1 << 0)|(1 << 26)) 27365dd74a6SSimon Glass #define PCH_DISABLE_P2P (1 << 1) 27465dd74a6SSimon Glass #define PCH_DISABLE_SATA1 (1 << 2) 27565dd74a6SSimon Glass #define PCH_DISABLE_SMBUS (1 << 3) 27665dd74a6SSimon Glass #define PCH_DISABLE_HD_AUDIO (1 << 4) 27765dd74a6SSimon Glass #define PCH_DISABLE_EHCI2 (1 << 13) 27865dd74a6SSimon Glass #define PCH_DISABLE_LPC (1 << 14) 27965dd74a6SSimon Glass #define PCH_DISABLE_EHCI1 (1 << 15) 28065dd74a6SSimon Glass #define PCH_DISABLE_PCIE(x) (1 << (16 + x)) 28165dd74a6SSimon Glass #define PCH_DISABLE_THERMAL (1 << 24) 28265dd74a6SSimon Glass #define PCH_DISABLE_SATA2 (1 << 25) 28365dd74a6SSimon Glass #define PCH_DISABLE_XHCI (1 << 27) 28465dd74a6SSimon Glass 28565dd74a6SSimon Glass /* Function Disable 2 RCBA 0x3428 */ 28665dd74a6SSimon Glass #define PCH_DISABLE_KT (1 << 4) 28765dd74a6SSimon Glass #define PCH_DISABLE_IDER (1 << 3) 28865dd74a6SSimon Glass #define PCH_DISABLE_MEI2 (1 << 2) 28965dd74a6SSimon Glass #define PCH_DISABLE_MEI1 (1 << 1) 29065dd74a6SSimon Glass #define PCH_ENABLE_DBDF (1 << 0) 29165dd74a6SSimon Glass 2921b4f25ffSSimon Glass /* ICH7 GPIOBASE */ 2931b4f25ffSSimon Glass #define GPIO_USE_SEL 0x00 2941b4f25ffSSimon Glass #define GP_IO_SEL 0x04 2951b4f25ffSSimon Glass #define GP_LVL 0x0c 2961b4f25ffSSimon Glass #define GPO_BLINK 0x18 2971b4f25ffSSimon Glass #define GPI_INV 0x2c 2981b4f25ffSSimon Glass #define GPIO_USE_SEL2 0x30 2991b4f25ffSSimon Glass #define GP_IO_SEL2 0x34 3001b4f25ffSSimon Glass #define GP_LVL2 0x38 3011b4f25ffSSimon Glass #define GPIO_USE_SEL3 0x40 3021b4f25ffSSimon Glass #define GP_IO_SEL3 0x44 3031b4f25ffSSimon Glass #define GP_LVL3 0x48 3041b4f25ffSSimon Glass #define GP_RST_SEL1 0x60 3051b4f25ffSSimon Glass #define GP_RST_SEL2 0x64 3061b4f25ffSSimon Glass #define GP_RST_SEL3 0x68 3071b4f25ffSSimon Glass 3088e0df066SSimon Glass /* ICH7 PMBASE */ 3098e0df066SSimon Glass #define PM1_STS 0x00 3108e0df066SSimon Glass #define WAK_STS (1 << 15) 3118e0df066SSimon Glass #define PCIEXPWAK_STS (1 << 14) 3128e0df066SSimon Glass #define PRBTNOR_STS (1 << 11) 3138e0df066SSimon Glass #define RTC_STS (1 << 10) 3148e0df066SSimon Glass #define PWRBTN_STS (1 << 8) 3158e0df066SSimon Glass #define GBL_STS (1 << 5) 3168e0df066SSimon Glass #define BM_STS (1 << 4) 3178e0df066SSimon Glass #define TMROF_STS (1 << 0) 3188e0df066SSimon Glass #define PM1_EN 0x02 3198e0df066SSimon Glass #define PCIEXPWAK_DIS (1 << 14) 3208e0df066SSimon Glass #define RTC_EN (1 << 10) 3218e0df066SSimon Glass #define PWRBTN_EN (1 << 8) 3228e0df066SSimon Glass #define GBL_EN (1 << 5) 3238e0df066SSimon Glass #define TMROF_EN (1 << 0) 3248e0df066SSimon Glass #define PM1_CNT 0x04 3258e0df066SSimon Glass #define SLP_EN (1 << 13) 3268e0df066SSimon Glass #define SLP_TYP (7 << 10) 3278e0df066SSimon Glass #define SLP_TYP_S0 0 3288e0df066SSimon Glass #define SLP_TYP_S1 1 3298e0df066SSimon Glass #define SLP_TYP_S3 5 3308e0df066SSimon Glass #define SLP_TYP_S4 6 3318e0df066SSimon Glass #define SLP_TYP_S5 7 3328e0df066SSimon Glass #define GBL_RLS (1 << 2) 3338e0df066SSimon Glass #define BM_RLD (1 << 1) 3348e0df066SSimon Glass #define SCI_EN (1 << 0) 3358e0df066SSimon Glass #define PM1_TMR 0x08 3368e0df066SSimon Glass #define PROC_CNT 0x10 3378e0df066SSimon Glass #define LV2 0x14 3388e0df066SSimon Glass #define LV3 0x15 3398e0df066SSimon Glass #define LV4 0x16 3408e0df066SSimon Glass #define PM2_CNT 0x50 /* mobile only */ 3418e0df066SSimon Glass #define GPE0_STS 0x20 3428e0df066SSimon Glass #define PME_B0_STS (1 << 13) 3438e0df066SSimon Glass #define PME_STS (1 << 11) 3448e0df066SSimon Glass #define BATLOW_STS (1 << 10) 3458e0df066SSimon Glass #define PCI_EXP_STS (1 << 9) 3468e0df066SSimon Glass #define RI_STS (1 << 8) 3478e0df066SSimon Glass #define SMB_WAK_STS (1 << 7) 3488e0df066SSimon Glass #define TCOSCI_STS (1 << 6) 3498e0df066SSimon Glass #define SWGPE_STS (1 << 2) 3508e0df066SSimon Glass #define HOT_PLUG_STS (1 << 1) 3518e0df066SSimon Glass #define GPE0_EN 0x28 3528e0df066SSimon Glass #define PME_B0_EN (1 << 13) 3538e0df066SSimon Glass #define PME_EN (1 << 11) 3548e0df066SSimon Glass #define TCOSCI_EN (1 << 6) 3558e0df066SSimon Glass #define SMI_EN 0x30 3568e0df066SSimon Glass #define INTEL_USB2_EN (1 << 18) /* Intel-Specific USB2 SMI logic */ 3578e0df066SSimon Glass #define LEGACY_USB2_EN (1 << 17) /* Legacy USB2 SMI logic */ 3588e0df066SSimon Glass #define PERIODIC_EN (1 << 14) /* SMI on PERIODIC_STS in SMI_STS */ 3598e0df066SSimon Glass #define TCO_EN (1 << 13) /* Enable TCO Logic (BIOSWE et al) */ 3608e0df066SSimon Glass #define MCSMI_EN (1 << 11) /* Trap microcontroller range access */ 3618e0df066SSimon Glass #define BIOS_RLS (1 << 7) /* asserts SCI on bit set */ 3628e0df066SSimon Glass #define SWSMI_TMR_EN (1 << 6) /* start software smi timer on bit set */ 3638e0df066SSimon Glass #define APMC_EN (1 << 5) /* Writes to APM_CNT cause SMI# */ 3648e0df066SSimon Glass #define SLP_SMI_EN (1 << 4) /* Write SLP_EN in PM1_CNT asserts SMI# */ 3658e0df066SSimon Glass #define LEGACY_USB_EN (1 << 3) /* Legacy USB circuit SMI logic */ 3668e0df066SSimon Glass #define BIOS_EN (1 << 2) /* Assert SMI# on setting GBL_RLS bit */ 3678e0df066SSimon Glass #define EOS (1 << 1) /* End of SMI (deassert SMI#) */ 3688e0df066SSimon Glass #define GBL_SMI_EN (1 << 0) /* SMI# generation at all? */ 3698e0df066SSimon Glass #define SMI_STS 0x34 3708e0df066SSimon Glass #define ALT_GP_SMI_EN 0x38 3718e0df066SSimon Glass #define ALT_GP_SMI_STS 0x3a 3728e0df066SSimon Glass #define GPE_CNTL 0x42 3738e0df066SSimon Glass #define DEVACT_STS 0x44 3748e0df066SSimon Glass #define SS_CNT 0x50 3758e0df066SSimon Glass #define C3_RES 0x54 3768e0df066SSimon Glass #define TCO1_STS 0x64 3778e0df066SSimon Glass #define DMISCI_STS (1 << 9) 3788e0df066SSimon Glass #define TCO2_STS 0x66 3798e0df066SSimon Glass 380*9434c7a3SSimon Glass /** 381*9434c7a3SSimon Glass * pch_silicon_revision() - Read silicon device ID from the PCH 382*9434c7a3SSimon Glass * 383*9434c7a3SSimon Glass * @dev: PCH device 384*9434c7a3SSimon Glass * @return silicon device ID 385*9434c7a3SSimon Glass */ 386*9434c7a3SSimon Glass int pch_silicon_type(struct udevice *dev); 387*9434c7a3SSimon Glass 388*9434c7a3SSimon Glass /** 389*9434c7a3SSimon Glass * pch_pch_iobp_update() - Update a pch register 390*9434c7a3SSimon Glass * 391*9434c7a3SSimon Glass * @dev: PCH device 392*9434c7a3SSimon Glass * @address: Address to update 393*9434c7a3SSimon Glass * @andvalue: Value to AND with existing value 394*9434c7a3SSimon Glass * @orvalue: Value to OR with existing value 395*9434c7a3SSimon Glass */ 396*9434c7a3SSimon Glass void pch_iobp_update(struct udevice *dev, u32 address, u32 andvalue, 397*9434c7a3SSimon Glass u32 orvalue); 398*9434c7a3SSimon Glass 3992b605154SSimon Glass #endif 400