1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2012 Vikram Narayananan
4 * <vikram186@gmail.com>
5 * (C) Copyright 2012,2015 Stephen Warren
8 #ifndef _BCM2835_GPIO_H_
9 #define _BCM2835_GPIO_H_
11 #define BCM2835_GPIO_COUNT 54
13 #define BCM2835_GPIO_FSEL_MASK 0x7
14 #define BCM2835_GPIO_INPUT 0x0
15 #define BCM2835_GPIO_OUTPUT 0x1
16 #define BCM2835_GPIO_ALT0 0x4
17 #define BCM2835_GPIO_ALT1 0x5
18 #define BCM2835_GPIO_ALT2 0x6
19 #define BCM2835_GPIO_ALT3 0x7
20 #define BCM2835_GPIO_ALT4 0x3
21 #define BCM2835_GPIO_ALT5 0x2
23 #define BCM2835_GPIO_COMMON_BANK(gpio) ((gpio < 32) ? 0 : 1)
24 #define BCM2835_GPIO_COMMON_SHIFT(gpio) (gpio & 0x1f)
26 #define BCM2835_GPIO_FSEL_BANK(gpio) (gpio / 10)
27 #define BCM2835_GPIO_FSEL_SHIFT(gpio) ((gpio % 10) * 3)
29 struct bcm2835_gpio_regs {
55 * struct bcm2835_gpio_plat - GPIO platform description
57 * @base: Base address of GPIO controller
59 struct bcm2835_gpio_plat {
63 #endif /* _BCM2835_GPIO_H_ */