coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef __SOC_TI_AM335X_GPIO_H__
4 #define __SOC_TI_AM335X_GPIO_H__
5 
6 #include <stdint.h>
7 
8 enum {
10 };
11 
14  uint8_t _rsv0[0xc]; // 0x4-0xf
16  uint8_t _rsv1[0xc]; // 0x14-0x1f
17  uint32_t eoi; // 0x20
28  uint8_t _rsv2[0xc8]; // 0x4c-0x113
29  uint32_t sysstatus; // 0x114
30  uint8_t _rsv3[0x18]; // 0x118-0x12f
31  uint32_t ctrl; // 0x130
32  uint32_t oe; // 0x134
33  uint32_t datain; // 0x138
34  uint32_t dataout; // 0x13c
41  uint8_t _rsv4[0x38]; // 0x158-0x18f
43  uint32_t setdataout; // 0x194
45 
46 static struct am335x_gpio_regs * const am335x_gpio_banks[] = {
47  (void *)0x44e07000, (void *)0x4804c000,
48  (void *)0x481ac000, (void *)0x481ae000
49 };
50 
51 void am335x_disable_gpio_irqs(void);
52 
53 int gpio_direction_input(unsigned int gpio);
54 int gpio_direction_output(unsigned int gpio, int value);
55 int gpio_get_value(unsigned int gpio);
56 int gpio_set_value(unsigned int gpio, int value);
57 
58 #endif /* __SOC_TI_AM335X_CLOCK_H__ */
pte_t value
Definition: mmu.c:91
struct soc_gpio_map __packed
int gpio_direction_output(unsigned int gpio, int value)
Make a GPIO an output, and set its value.
Definition: gpio.c:151
int gpio_direction_input(unsigned int gpio)
Make a GPIO an input.
Definition: gpio.c:144
int gpio_set_value(unsigned int gpio, int value)
Set an output GPIO's value.
Definition: gpio.c:176
int gpio_get_value(unsigned int gpio)
Get a GPIO's value.
Definition: gpio.c:167
void am335x_disable_gpio_irqs(void)
Definition: gpio.c:21
@ AM335X_GPIO_BITS_PER_BANK
Definition: gpio.h:9
static struct am335x_gpio_regs *const am335x_gpio_banks[]
Definition: gpio.h:46
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8
uint8_t _rsv3[0x18]
Definition: gpio.h:30
uint32_t irqwaken_0
Definition: gpio.h:26
uint32_t irqstatus_clr_0
Definition: gpio.h:24
uint8_t _rsv1[0xc]
Definition: gpio.h:16
uint32_t irqstatus_set_1
Definition: gpio.h:23
uint32_t sysstatus
Definition: gpio.h:29
uint32_t setdataout
Definition: gpio.h:43
uint32_t irqwaken_1
Definition: gpio.h:27
uint8_t _rsv0[0xc]
Definition: gpio.h:14
uint32_t datain
Definition: gpio.h:33
uint32_t irqstatus_clk_1
Definition: gpio.h:25
uint32_t irqstatus_raw_1
Definition: gpio.h:19
uint8_t _rsv4[0x38]
Definition: gpio.h:41
uint32_t irqstatus_1
Definition: gpio.h:21
uint32_t debouncenable
Definition: gpio.h:39
uint32_t irqstatus_set_0
Definition: gpio.h:22
uint32_t fallingdetect
Definition: gpio.h:38
uint32_t risingdetect
Definition: gpio.h:37
uint32_t cleardataout
Definition: gpio.h:42
uint32_t leveldetect1
Definition: gpio.h:36
uint32_t dataout
Definition: gpio.h:34
uint32_t leveldetect0
Definition: gpio.h:35
uint32_t irqstatus_0
Definition: gpio.h:20
uint32_t irqstatus_raw_0
Definition: gpio.h:18
uint32_t ctrl
Definition: gpio.h:31
uint32_t revision
Definition: gpio.h:13
uint32_t eoi
Definition: gpio.h:17
uint32_t debouncingtime
Definition: gpio.h:40
uint32_t sysconfig
Definition: gpio.h:15
uint32_t oe
Definition: gpio.h:32
uint8_t _rsv2[0xc8]
Definition: gpio.h:28
Definition: pinmux.c:36