mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-16 23:18:51 +09:00
![Sagar Shrikant Kadam](/assets/img/avatar_default.png)
This patch adds a DM based driver model for gpio controller present in FU540-C000 SoC on HiFive Unleashed A00 board. This SoC has one GPIO bank and 16 GPIO lines in total, out of which GPIO0 to GPIO9 and GPIO15 are routed to the J1 header on the board. This implementation is ported from linux based gpio driver submitted for review by Wesley W. Terpstra <wesley@sifive.com> and/or Atish Patra <atish.patra@wdc.com> (many thanks !!). The linux driver can be referred here [1] [1]: https://lkml.org/lkml/2018/10/9/1103 Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
36 lines
690 B
C
36 lines
690 B
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2019 SiFive, Inc.
|
|
*/
|
|
|
|
#ifndef _GPIO_SIFIVE_H
|
|
#define _GPIO_SIFIVE_H
|
|
|
|
#define GPIO_INPUT_VAL 0x00
|
|
#define GPIO_INPUT_EN 0x04
|
|
#define GPIO_OUTPUT_EN 0x08
|
|
#define GPIO_OUTPUT_VAL 0x0C
|
|
#define GPIO_RISE_IE 0x18
|
|
#define GPIO_RISE_IP 0x1C
|
|
#define GPIO_FALL_IE 0x20
|
|
#define GPIO_FALL_IP 0x24
|
|
#define GPIO_HIGH_IE 0x28
|
|
#define GPIO_HIGH_IP 0x2C
|
|
#define GPIO_LOW_IE 0x30
|
|
#define GPIO_LOW_IP 0x34
|
|
#define GPIO_OUTPUT_XOR 0x40
|
|
|
|
#define NR_GPIOS 16
|
|
|
|
enum gpio_state {
|
|
LOW,
|
|
HIGH
|
|
};
|
|
|
|
/* Details about a GPIO bank */
|
|
struct sifive_gpio_platdata {
|
|
void *base; /* address of registers in physical memory */
|
|
};
|
|
|
|
#endif /* _GPIO_SIFIVE_H */
|