/* * Copyright (c) 2021, Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief GPIO macros for the Elkhart Lake SoC * * This header file is used to specify the GPIO macros for * the ELkhart Lake SoC. */ #ifndef __SOC_GPIO_H_ #define __SOC_GPIO_H_ #define GPIO_INTEL_NR_SUBDEVS 15 #define REG_PAD_OWNER_BASE 0x0020 #define REG_GPI_INT_STS_BASE 0x0100 #define PAD_CFG0_PMODE_MASK (0x0F << 10) #define REG_PAD_BASE_ADDR 0x000C #define REG_GPI_INT_EN_BASE 0x0120 #define REG_PAD_HOST_SW_OWNER 0x0B0 #define PAD_BASE_ADDR_MASK 0xfff #define GPIO_REG_BASE(reg_base) \ (reg_base & ~PAD_BASE_ADDR_MASK) #define GPIO_PAD_BASE(reg_base) \ (reg_base & PAD_BASE_ADDR_MASK) #define GPIO_PAD_OWNERSHIP(raw_pin, pin_offset) \ (pin_offset % 8) ? \ REG_PAD_OWNER_BASE + \ ((((pin_offset / 8) + 1) + (raw_pin / 8)) * 0x4) : \ REG_PAD_OWNER_BASE + \ (((pin_offset / 8) + (raw_pin / 8)) * 0x4); \ #define GPIO_OWNERSHIP_BIT(raw_pin) ((raw_pin % 8) * 4) #define GPIO_RAW_PIN(pin, pin_offset) pin #define GPIO_INTERRUPT_BASE(cfg) \ (cfg->group_index * 0x4) #define GPIO_BASE(cfg) \ (cfg->group_index * 0x4) #define PIN_OFFSET 0x10 #endif /* __SOC_GPIO_H_ */