zephyr/soc/intel/elkhart_lake/soc_gpio.h

55 lines
1.2 KiB
C

/*
* 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_ */