The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/gpio/chvgpio_reg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2017 Tom Jones <tj@enoti.me>
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26  * SUCH DAMAGE.
   27  *
   28  * $FreeBSD$
   29  */
   30 
   31 /*
   32  * Copyright (c) 2016 Mark Kettenis
   33  *
   34  * Permission to use, copy, modify, and distribute this software for any
   35  * purpose with or without fee is hereby granted, provided that the above
   36  * copyright notice and this permission notice appear in all copies.
   37  *
   38  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   39  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   40  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   41  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   42  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   43  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   44  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   45  *
   46  */
   47 
   48 
   49 #define CHVGPIO_INTERRUPT_STATUS                0x0300
   50 #define CHVGPIO_INTERRUPT_MASK                  0x0380
   51 #define CHVGPIO_PAD_CFG0                        0x4400
   52 #define CHVGPIO_PAD_CFG1                        0x4404
   53 
   54 #define CHVGPIO_PAD_CFG0_GPIORXSTATE            0x00000001
   55 #define CHVGPIO_PAD_CFG0_GPIOTXSTATE            0x00000002
   56 #define CHVGPIO_PAD_CFG0_INTSEL_MASK            0xf0000000
   57 #define CHVGPIO_PAD_CFG0_INTSEL_SHIFT           28
   58 
   59 #define CHVGPIO_PAD_CFG0_GPIOCFG_SHIFT          8
   60 #define CHVGPIO_PAD_CFG0_GPIOCFG_MASK           (7 << CHVGPIO_PAD_CFG0_GPIOCFG_SHIFT)
   61 #define CHVGPIO_PAD_CFG0_GPIOCFG_GPIO           0
   62 #define CHVGPIO_PAD_CFG0_GPIOCFG_GPO            1
   63 #define CHVGPIO_PAD_CFG0_GPIOCFG_GPI            2
   64 #define CHVGPIO_PAD_CFG0_GPIOCFG_HIZ            3
   65 
   66 #define CHVGPIO_PAD_CFG1_INTWAKECFG_MASK        0x00000007
   67 #define CHVGPIO_PAD_CFG1_INTWAKECFG_FALLING     0x00000001
   68 #define CHVGPIO_PAD_CFG1_INTWAKECFG_RISING      0x00000002
   69 #define CHVGPIO_PAD_CFG1_INTWAKECFG_BOTH        0x00000003
   70 #define CHVGPIO_PAD_CFG1_INTWAKECFG_LEVEL       0x00000004
   71 #define CHVGPIO_PAD_CFG1_INVRXTX_MASK           0x000000f0
   72 #define CHVGPIO_PAD_CFG1_INVRXTX_RXDATA         0x00000040
   73 
   74 /*
   75  * The pads for the pins are arranged in groups of maximal 15 pins.
   76  * The arrays below give the number of pins per group, such that we
   77  * can validate the (untrusted) pin numbers from ACPI.
   78  */
   79 #define E_UID           3
   80 #define E_BANK_PREFIX   "eastbank"
   81 
   82 const int chv_east_pins[] = {
   83         12, 12, -1
   84 };
   85 
   86 const char *chv_east_pin_names[] = {
   87                 "PMU_SLP_S3_B",
   88                 "PMU_BATLOW_B",
   89                 "SUS_STAT_B",
   90                 "PMU_SLP_S0IX_B",
   91                 "PMU_AC_PRESENT",
   92                 "PMU_PLTRST_B",
   93                 "PMU_SUSCLK",
   94                 "PMU_SLP_LAN_B",
   95                 "PMU_PWRBTN_B",
   96                 "PMU_SLP_S4_B",
   97                 "PMU_WAKE_B",
   98                 "PMU_WAKE_LAN_B"
   99 
  100                 "MF_ISH_GPIO_3",
  101                 "MF_ISH_GPIO_7",
  102                 "MF_ISH_I2C1_SCL",
  103                 "MF_ISH_GPIO_1",
  104                 "MF_ISH_GPIO_5",
  105                 "MF_ISH_GPIO_9",
  106                 "MF_ISH_GPIO_0",
  107                 "MF_ISH_GPIO_4",
  108                 "MF_ISH_GPIO_8",
  109                 "MF_ISH_GPIO_2",
  110                 "MF_ISH_GPIO_6",
  111                 "MF_ISH_I2C1_SDA"
  112 };
  113 
  114 #define N_UID           2
  115 #define N_BANK_PREFIX   "northbank"
  116 
  117 const int chv_north_pins[] = {
  118         9, 13, 12, 12, 13, -1
  119 };
  120 
  121 const char *chv_north_pin_names[] = {
  122         "GPIO_DFX0_PAD",
  123         "GPIO_DFX3_PAD",
  124         "GPIO_DFX7_PAD",
  125         "GPIO_DFX1_PAD",
  126         "GPIO_DFX5_PAD",
  127         "GPIO_DFX4_PAD",
  128         "GPIO_DFX8_PAD",
  129         "GPIO_DFX2_PAD",
  130         "GPIO_DFX6_PAD",
  131 
  132         "GPIO_SUS0_PAD",
  133         "SEC_GPIO_SUS10_PAD",
  134         "GPIO_SUS3_PAD",
  135         "GPIO_SUS7_PAD",
  136         "GPIO_SUS1_PAD",
  137         "GPIO_SUS5_PAD",
  138         "SEC_GPIO_SUS11_PAD",
  139         "GPIO_SUS4_PAD",
  140         "SEC_GPIO_SUS8_PAD",
  141         "GPIO_SUS2_PAD",
  142         "GPIO_SUS6_PAD",
  143         "CX_PREQ_B_PAD",
  144         "SEC_GPIO_SUS9_PAD",
  145 
  146         "TRST_B_PAD",
  147         "TCK_PAD",
  148         "PROCHOT_B_PAD",
  149         "SVID0_DATA_PAD",
  150         "TMS_PAD",
  151         "CX_PRDY_B_2_PAD",
  152         "TDO_2_PAD",
  153         "CX_PRDY_B_PAD",
  154         "SVID0_ALERT_B_PAD",
  155         "TDO_PAD",
  156         "SVID0_CLK_PAD",
  157         "TDI_PAD",
  158 
  159         "GP_CAMERASB05_PAD",
  160         "GP_CAMERASB02_PAD",
  161         "GP_CAMERASB08_PAD",
  162         "GP_CAMERASB00_PAD",
  163         "GP_CAMERASB06_PAD",
  164         "GP_CAMERASB10_PAD",
  165         "GP_CAMERASB03_PAD",
  166         "GP_CAMERASB09_PAD",
  167         "GP_CAMERASB01_PAD",
  168         "GP_CAMERASB07_PAD",
  169         "GP_CAMERASB11_PAD",
  170         "GP_CAMERASB04_PAD",
  171 
  172         "PANEL0_BKLTEN_PAD",
  173         "HV_DDI0_HPD_PAD",
  174         "HV_DDI2_DDC_SDA_PAD",
  175         "PANEL1_BKLTCTL_PAD",
  176         "HV_DDI1_HPD_PAD",
  177         "PANEL0_BKLTCTL_PAD",
  178         "HV_DDI0_DDC_SDA_PAD",
  179         "HV_DDI2_DDC_SCL_PAD",
  180         "HV_DDI2_HPD_PAD",
  181         "PANEL1_VDDEN_PAD",
  182         "PANEL1_BKLTEN_PAD",
  183         "HV_DDI0_DDC_SCL_PAD",
  184         "PANEL0_VDDEN_PAD",
  185 };
  186 
  187 
  188 #define SE_UID          4
  189 #define SE_BANK_PREFIX  "southeastbank"
  190 
  191 const int chv_southeast_pins[] = {
  192         8, 12, 6, 8, 10, 11, -1
  193 };
  194 
  195 const char *chv_southeast_pin_names[] = {
  196         "MF_PLT_CLK0_PAD",
  197         "PWM1_PAD",
  198         "MF_PLT_CLK1_PAD",
  199         "MF_PLT_CLK4_PAD",
  200         "MF_PLT_CLK3_PAD",
  201         "PWM0_PAD",
  202         "MF_PLT_CLK5_PAD",
  203         "MF_PLT_CLK2_PAD",
  204 
  205         "SDMMC2_D3_CD_B_PAD",
  206         "SDMMC1_CLK_PAD",
  207         "SDMMC1_D0_PAD",
  208         "SDMMC2_D1_PAD",
  209         "SDMMC2_CLK_PAD",
  210         "SDMMC1_D2_PAD",
  211         "SDMMC2_D2_PAD",
  212         "SDMMC2_CMD_PAD",
  213         "SDMMC1_CMD_PAD",
  214         "SDMMC1_D1_PAD",
  215         "SDMMC2_D0_PAD",
  216         "SDMMC1_D3_CD_B_PAD",
  217 
  218         "SDMMC3_D1_PAD",
  219         "SDMMC3_CLK_PAD",
  220         "SDMMC3_D3_PAD",
  221         "SDMMC3_D2_PAD",
  222         "SDMMC3_CMD_PAD",
  223         "SDMMC3_D0_PAD",
  224 
  225         "MF_LPC_AD2_PAD",
  226         "LPC_CLKRUNB_PAD",
  227         "MF_LPC_AD0_PAD",
  228         "LPC_FRAMEB_PAD",
  229         "MF_LPC_CLKOUT1_PAD",
  230         "MF_LPC_AD3_PAD",
  231         "MF_LPC_CLKOUT0_PAD",
  232         "MF_LPC_AD1_PAD",
  233 
  234         "SPI1_MISO_PAD",
  235         "SPI1_CS0_B_PAD",
  236         "SPI1_CLK_PAD",
  237         "MMC1_D6_PAD",
  238         "SPI1_MOSI_PAD",
  239         "MMC1_D5_PAD",
  240         "SPI1_CS1_B_PAD",
  241         "MMC1_D4_SD_WE_PAD",
  242         "MMC1_D7_PAD",
  243         "MMC1_RCLK_PAD",
  244 
  245         "USB_OC1_B_PAD",
  246         "PMU_RESETBUTTON_B_PAD",
  247         "GPIO_ALERT_PAD",
  248         "SDMMC3_PWR_EN_B_PAD",
  249         "ILB_SERIRQ_PAD",
  250         "USB_OC0_B_PAD",
  251         "SDMMC3_CD_B_PAD",
  252         "SPKR_PAD",
  253         "SUSPWRDNACK_PAD",
  254         "SPARE_PIN_PAD",
  255         "SDMMC3_1P8_EN_PAD",
  256 };
  257 
  258 #define SW_UID          1
  259 #define SW_BANK_PREFIX  "southwestbank"
  260 
  261 const int chv_southwest_pins[] = {
  262         8, 8, 8, 8, 8, 8, 8, -1
  263 };
  264 
  265 const char *chv_southwest_pin_names[] = {
  266         "FST_SPI_D2_PAD",
  267         "FST_SPI_D0_PAD",
  268         "FST_SPI_CLK_PAD",
  269         "FST_SPI_D3_PAD",
  270         "FST_SPI_CS1_B_PAD",
  271         "FST_SPI_D1_PAD",
  272         "FST_SPI_CS0_B_PAD",
  273         "FST_SPI_CS2_B_PAD",
  274 
  275         "UART1_RTS_B_PAD",
  276         "UART1_RXD_PAD",
  277         "UART2_RXD_PAD",
  278         "UART1_CTS_B_PAD",
  279         "UART2_RTS_B_PAD",
  280         "UART1_TXD_PAD",
  281         "UART2_TXD_PAD",
  282         "UART2_CTS_B_PAD",
  283 
  284         "MF_HDA_CLK"
  285         "MF_HDA_RSTB",
  286         "MF_HDA_SDIO",
  287         "MF_HDA_SDO",
  288         "MF_HDA_DOCKRSTB",
  289         "MF_HDA_SYNC",
  290         "MF_HDA_SDI1",
  291         "MF_HDA_DOCKENB",
  292 
  293         "I2C5_SDA_PAD",
  294         "I2C4_SDA_PAD",
  295         "I2C6_SDA_PAD",
  296         "I2C5_SCL_PAD",
  297         "I2C_NFC_SDA_PAD",
  298         "I2C4_SCL_PAD",
  299         "I2C6_SCL_PAD",
  300         "I2C_NFC_SCL_PAD",
  301 
  302         "I2C1_SDA_PAD",
  303         "I2C0_SDA_PAD",
  304         "I2C2_SDA_PAD",
  305         "I2C1_SCL_PAD",
  306         "I2C3_SDA_PAD",
  307         "I2C0_SCL_PAD",
  308         "I2C2_SCL_PAD",
  309         "I2C3_SCL_PAD",
  310 
  311         "SATA_GP0",
  312         "SATA_GP1",
  313         "SATA_LEDN",
  314         "SATA_GP2",
  315         "MF_SMB_ALERTB",
  316         "SATA_GP3",
  317         "MF_SMB_CLK",
  318         "MF_SMB_DATA",
  319 
  320         "PCIE_CLKREQ0B_PAD",
  321         "PCIE_CLKREQ1B_PAD",
  322         "GP_SSP_2_CLK_PAD",
  323         "PCIE_CLKREQ2B_PAD",
  324         "GP_SSP_2_RXD_PAD",
  325         "PCIE_CLKREQ3B_PAD",
  326         "GP_SSP_2_FS_PAD",
  327         "GP_SSP_2_TXD_PAD",
  328 };
  329 
  330 const char *virtualgpio[] = {
  331         "VIRTUAL0_PAD",
  332         "VIRTUAL1_PAD",
  333         "VIRTUAL2_PAD",
  334         "VIRTUAL3_PAD",
  335         "VIRTUAL4_PAD",
  336         "VIRTUAL5_PAD",
  337         "VIRTUAL6_PAD",
  338         "VIRTUAL7_PAD",
  339 };

Cache object: ef4972eb2f89884b0726a8085273092a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.