Home | History | Annotate | Download | only in Protocol
      1 /*++
      2 
      3 Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
      4 
      5   This program and the accompanying materials are licensed and made available under
      6   the terms and conditions of the BSD License that accompanies this distribution.
      7   The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php.
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 
     14 
     15 Module Name:
     16 
     17   Gpio.h
     18 
     19 Abstract:
     20 
     21 EFI 2.0 PEIM to provide platform specific information to other
     22 modules and to do some platform specific initialization.
     23 
     24 --*/
     25 
     26 #ifndef _PEI_GPIO_H
     27 #define _PEI_GPIO_H
     28 
     29 //#include "Efi.h"
     30 //#include "EfiCommonLib.h"
     31 //#include "Pei.h"
     32 //#include "Numbers.h"
     33 
     34 ////
     35 //// GPIO Register Settings for BeaverBridge (FFVS) (Cedarview/Tigerpoint)
     36 ////
     37 //// Field Descriptions:
     38 ////    USE: Defines the pin's usage model:  GPIO (G) or Native (N) mode.
     39 ////    I/O: Defines whether GPIOs are inputs (I) or outputs (O).
     40 ////         (Note:  Only meaningful for pins used as GPIOs.)
     41 ////    LVL: This field gives you the initial value for "output" GPIO's.
     42 ////         (Note: The output level is dependent upon whether the pin is inverted.)
     43 ////    INV: Defines whether Input GPIOs activation level is inverted.
     44 ////         (Note:  Only affects the level sent to the GPE logic and does not
     45 ////         affect the level read through the GPIO registers.)
     46 ////
     47 //// Notes:
     48 ////    1. BoardID is GPIO [8:38:34]
     49 ////
     50 ////Signal         UsedAs               USE     I/O      LVL     INV
     51 ////--------------------------------------------------------------------------
     52 ////GPIO0           Nonfunction       G     O            H       -
     53 ////GPIO1           SMC_RUNTIME_SCI#    G        I           -       I
     54 ////PIRQE#/GPIO2    Nonfunction G   O   H   -
     55 ////PIRQF#/GPIO3    Nonfunction G   O   H   -
     56 ////PIRQG#/GPIO4    Nonfunction G   O   H   -
     57 ////PIRQH#/GPIO5    Nonfunction G   O   H   -
     58 ////GPIO6   unused  G   O   L   -
     59 ////GPIO7   unused  G   O   L   -
     60 ////GPIO8          BOARD ID2    G   I   -   -
     61 ////GPIO9   unused  G   O   L   -
     62 ////GPIO10  SMC_EXTSMI# G   I   -   I
     63 ////GPIO11  Nonfunction G   O   H   -
     64 ////GPIO12  unused  G   O   L   -
     65 ////GPIO13  SMC_WAKE_SCI#   G   I   -   I
     66 ////GPIO14  unused  G   O   L   -
     67 ////GPIO15  unused  G   O   L   -
     68 ////GPIO16  PM_DPRSLPVR N   -   -   -
     69 ////GNT5#/GPIO17    GNT5#   N   -   -   -
     70 ////STPPCI#/GPIO18  PM_STPPCI#  N   -   -   -
     71 ////STPCPU#/GPIO20  PM_STPCPU#  N   -   -   -
     72 ////GPIO22  CRT_RefClk  G   I   -   -
     73 ////GPIO23  unused  G   O   L   -
     74 ////GPIO24  unused  G   O   L   -
     75 ////GPIO25  DMI strap   G   O   L   -
     76 ////GPIO26  unused  G   O   L   -
     77 ////GPIO27  unused  G   O   L   -
     78 ////GPIO28  RF_KILL#    G   O   H   -
     79 ////OC5#/GPIO29 OC  N   -   -   -
     80 ////OC6#/GPIO30 OC  N   -   -   -
     81 ////OC7#/GPIO31 OC  N   -   -   -
     82 ////CLKRUN#/GPIO32  PM_CLKRUN#  N   -   -   -
     83 ////GPIO33  NC  G   O   L   -
     84 ////GPIO34  BOARD ID0   G   I   -   -
     85 ////GPIO36  unused  G   O   L   -
     86 ////GPIO38  BOARD ID1   G   I   -   -
     87 ////GPIO39  unused  G   O   L   -
     88 ////GPIO48  unused  G   O   L   -
     89 ////CPUPWRGD/GPIO49 H_PWRGD N   -   -   -
     90 //
     91 //#define   GPIO_USE_SEL_VAL              0x1FC0FFFF       //GPIO1, 10, 13 is EC signal
     92 //#define   GPIO_USE_SEL2_VAL             0x000100D6
     93 //#define   GPIO_IO_SEL_VAL               0x00402502
     94 //#define   GPIO_IO_SEL2_VAL              0x00000044
     95 //#define   GPIO_LVL_VAL                  0x1800083D
     96 //#define   GPIO_LVL2_VAL                 0x00000000
     97 //#define   GPIO_INV_VAL                  0x00002402
     98 //#define   GPIO_BLNK_VAL                 0x00000000
     99 //#define   ICH_GPI_ROUTE (ICH_GPI_ROUTE_SCI(13) | ICH_GPI_ROUTE_SCI(1))
    100 
    101 //
    102 // GPIO Register Settings for CedarRock and CedarFalls platforms
    103 //
    104 //      GPIO Register Settings for NB10_CRB
    105 //---------------------------------------------------------------------------------
    106 //Signal        Used As         USE         I/O     LVL
    107 //---------------------------------------------------------------------------------
    108 //
    109 // GPIO0    FP_AUDIO_DETECT     G       I
    110 // GPIO1    SMC_RUNTIME_SCI#    G       I
    111 // GPIO2        INT_PIRQE_N     N       I
    112 // GPIO3    INT_PIRQF_N     N       I
    113 // GPIO4        INT_PIRQG_N     N       I
    114 // GPIO5        INT_PIRQH_N     N       I
    115 // GPIO6
    116 // GPIO7
    117 // GPIO8
    118 // GPIO9    LPC_SIO_PME     G       I
    119 // GPIO10   SMC_EXTSMI_N        G       I
    120 // GPIO11   SMBALERT- pullup    N
    121 // GPIO12   ICH_GP12        G       I
    122 // GPIO13   SMC_WAKE_SCI_N      G       I
    123 // GPIO14   LCD_PID0        G       O       H
    124 // GPIO15   CONFIG_MODE_N       G       I
    125 // GPIO16       PM_DPRSLPVR     N
    126 // GPIO17   SPI_SELECT_STRAP1
    127 //          /L_BKLTSEL0_N   G       I
    128 // GPIO18   PM_STPPCI_N     N
    129 // GPIO19
    130 // GPIO20   PM_STPCPU_N     N
    131 // GPIO21
    132 // GPIO22   REQ4B           G       I
    133 // GPIO23   L_DRQ1_N        N
    134 // GPIO24   CRB_SV_DET_N        G       O       H
    135 // GPIO25   DMI strap
    136 //          / L_BKLTSEL1_N  G       O       H
    137 // GPIO26   LCD_PID1        G       O       H
    138 // GPIO27   TPEV_DDR3L_DETECT   G       O       H
    139 // GPIO28   RF_KILL         G       O       H:enable
    140 // GPIO29   OC          N
    141 // GPIO30   OC          N
    142 // GPIO31   OC          N
    143 // GPIO32   PM_CLKRUN_N     Native
    144 // GPIO33   MFG_MODE_N      G       I
    145 // GPIO34   BOARD ID0       G       I
    146 // GPIO35
    147 // GPIO36   SV_SET_UP       G       O       H
    148 // GPIO37
    149 // GPIO38   BOARD ID1       G       I
    150 // GPIO39   BOARD ID2       G       I
    151 // GPIO48   FLASH_SEL0      N
    152 // GPIO49   H_PWRGD         N
    153 
    154 #define ICH_GPI_ROUTE_SMI(Gpio)          ((( 0 << ((Gpio * 2) + 1)) | (1 << (Gpio * 2))))
    155 #define ICH_GPI_ROUTE_SCI(Gpio)          ((( 1 << ((Gpio * 2) + 1)) | (0 << (Gpio * 2))))
    156 
    157 #define   GPIO_USE_SEL_VAL              0X1F42F7C3
    158 #define   GPIO_USE_SEL2_VAL             0X000000D6
    159 #define   GPIO_IO_SEL_VAL               0X1042B73F
    160 #define   GPIO_IO_SEL2_VAL              0X000100C6
    161 #define   GPIO_LVL_VAL                  0X1F15F601
    162 #define   GPIO_LVL2_VAL                 0X000200D7
    163 #define   GPIO_INV_VAL                  0x00002602
    164 #define   GPIO_BLNK_VAL                 0x00040000
    165 #define   ICH_GPI_ROUTE (ICH_GPI_ROUTE_SCI(13) | ICH_GPI_ROUTE_SCI(1))
    166 
    167 #endif
    168