mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 08:21:36 +01:00 
			
		
		
		
	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 */
 |