|  | /* gpio_sch.h - Descriptions of registers for Intel SCH GPIO controller */ | 
|  |  | 
|  | /* | 
|  | * Copyright (c) 2015 Intel Corporation. | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifndef ZEPHYR_DRIVERS_GPIO_GPIO_SCH_H_ | 
|  | #define ZEPHYR_DRIVERS_GPIO_GPIO_SCH_H_ | 
|  |  | 
|  | #include <zephyr/types.h> | 
|  | #include <kernel.h> | 
|  | #include <gpio.h> | 
|  |  | 
|  | #define GPIO_SCH_REG_GEN		(0x00) | 
|  | #define GPIO_SCH_REG_GIO		(0x04) | 
|  | #define GPIO_SCH_REG_GLVL		(0x08) | 
|  | #define GPIO_SCH_REG_GTPE		(0x0C) | 
|  | #define GPIO_SCH_REG_GTNE		(0x10) | 
|  | #define GPIO_SCH_REG_GGPE		(0x14) | 
|  | #define GPIO_SCH_REG_GSMI		(0x18) | 
|  | #define GPIO_SCH_REG_GTS		(0x1C) | 
|  |  | 
|  | struct gpio_sch_config { | 
|  | u32_t regs; | 
|  | u8_t bits; | 
|  | u8_t stride[3]; | 
|  | }; | 
|  |  | 
|  | #define GPIO_SCH_POLLING_STACK_SIZE 	1024 | 
|  | #define GPIO_SCH_POLLING_MSEC		200 | 
|  |  | 
|  | struct gpio_sch_data { | 
|  | K_THREAD_STACK_MEMBER(polling_stack, GPIO_SCH_POLLING_STACK_SIZE); | 
|  | struct k_thread polling_thread; | 
|  | sys_slist_t callbacks; | 
|  | struct k_timer poll_timer; | 
|  |  | 
|  | struct { | 
|  | u32_t gtpe; | 
|  | u32_t gtne; | 
|  | } int_regs; | 
|  |  | 
|  | u32_t cb_enabled; | 
|  | u8_t poll; | 
|  | u8_t stride[3]; | 
|  | }; | 
|  |  | 
|  | #endif /* ZEPHYR_DRIVERS_GPIO_GPIO_SCH_H_ */ |