48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * Copyright (c) 2011, Google Inc. All rights reserved.
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #ifndef _TEGRA_GPIO_H_
 | |
| #define _TEGRA_GPIO_H_
 | |
| 
 | |
| #define TEGRA_GPIOS_PER_PORT	8
 | |
| #define TEGRA_PORTS_PER_BANK	4
 | |
| #define MAX_NUM_GPIOS           (TEGRA_GPIO_PORTS * TEGRA_GPIO_BANKS * 8)
 | |
| #define GPIO_NAME_SIZE		20	/* gpio_request max label len */
 | |
| 
 | |
| #define GPIO_BANK(x)		((x) >> 5)
 | |
| #define GPIO_PORT(x)		(((x) >> 3) & 0x3)
 | |
| #define GPIO_FULLPORT(x)	((x) >> 3)
 | |
| #define GPIO_BIT(x)		((x) & 0x7)
 | |
| 
 | |
| enum tegra_gpio_init {
 | |
| 	TEGRA_GPIO_INIT_IN,
 | |
| 	TEGRA_GPIO_INIT_OUT0,
 | |
| 	TEGRA_GPIO_INIT_OUT1,
 | |
| };
 | |
| 
 | |
| struct tegra_gpio_config {
 | |
| 	u32 gpio:16;
 | |
| 	u32 init:2;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * tegra_spl_gpio_direction_output() - set the output value of a GPIO
 | |
|  *
 | |
|  * This function is only used from SPL on seaboard, which needs to enable a
 | |
|  * GPIO to get the UART running. It could be done in U-Boot rather than SPL,
 | |
|  * but for now, this gets it working
 | |
|  */
 | |
| int tegra_spl_gpio_direction_output(int gpio, int value);
 | |
| 
 | |
| /**
 | |
|  * Configure a list of GPIOs
 | |
|  *
 | |
|  * @param config	List of GPIO configurations
 | |
|  * @param len		Number of config items in list
 | |
|  */
 | |
| void gpio_config_table(const struct tegra_gpio_config *config, int len);
 | |
| 
 | |
| #endif	/* TEGRA_GPIO_H_ */
 |