| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2016 Google, Inc |
| * |
| * From Coreboot src/soc/intel/broadwell/include/soc/gpio.h |
| */ |
| |
| #ifndef __ASM_ARCH_GPIO |
| #define __ASM_ARCH_GPIO |
| |
| #define GPIO_PER_BANK 32 |
| #define GPIO_BANKS 3 |
| |
| struct broadwell_bank_plat { |
| uint16_t base_addr; |
| const char *bank_name; |
| int bank; |
| }; |
| |
| /* PCH-LP GPIOBASE Registers */ |
| struct pch_lp_gpio_regs { |
| u32 own[GPIO_BANKS]; |
| u32 reserved0; |
| |
| u16 pirq_to_ioxapic; |
| u16 reserved1[3]; |
| u32 blink; |
| u32 ser_blink; |
| |
| u32 ser_blink_cmdsts; |
| u32 ser_blink_data; |
| u16 gpi_nmi_en; |
| u16 gpi_nmi_sts; |
| u32 reserved2; |
| |
| u32 gpi_route[GPIO_BANKS]; |
| u32 reserved3; |
| |
| u32 reserved4[4]; |
| |
| u32 alt_gpi_smi_sts; |
| u32 alt_gpi_smi_en; |
| u32 reserved5[2]; |
| |
| u32 rst_sel[GPIO_BANKS]; |
| u32 reserved6; |
| |
| u32 reserved9[3]; |
| u32 gpio_gc; |
| |
| u32 gpi_is[GPIO_BANKS]; |
| u32 reserved10; |
| |
| u32 gpi_ie[GPIO_BANKS]; |
| u32 reserved11; |
| |
| u32 reserved12[24]; |
| |
| struct { |
| u32 conf_a; |
| u32 conf_b; |
| } config[GPIO_BANKS * GPIO_PER_BANK]; |
| }; |
| check_member(pch_lp_gpio_regs, gpi_ie[0], 0x90); |
| check_member(pch_lp_gpio_regs, config[0], 0x100); |
| |
| enum { |
| CONFA_MODE_SHIFT = 0, |
| CONFA_MODE_GPIO = 1 << CONFA_MODE_SHIFT, |
| |
| CONFA_DIR_SHIFT = 2, |
| CONFA_DIR_INPUT = 1 << CONFA_DIR_SHIFT, |
| |
| CONFA_INVERT_SHIFT = 3, |
| CONFA_INVERT = 1 << CONFA_INVERT_SHIFT, |
| |
| CONFA_TRIGGER_SHIFT = 4, |
| CONFA_TRIGGER_LEVEL = 1 << CONFA_TRIGGER_SHIFT, |
| |
| CONFA_LEVEL_SHIFT = 30, |
| CONFA_LEVEL_HIGH = 1UL << CONFA_LEVEL_SHIFT, |
| |
| CONFA_OUTPUT_SHIFT = 31, |
| CONFA_OUTPUT_HIGH = 1UL << CONFA_OUTPUT_SHIFT, |
| |
| CONFB_SENSE_SHIFT = 2, |
| CONFB_SENSE_DISABLE = 1 << CONFB_SENSE_SHIFT, |
| }; |
| |
| #endif |