hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Copyright (c) 2011, Google Inc. All rights reserved.
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#ifndef _TEGRA_GPIO_H_
#define _TEGRA_GPIO_H_
 
#include <dt-bindings/gpio/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;
};
 
/**
 * 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_ */