aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h')
-rw-r--r--roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h b/roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h
new file mode 100644
index 000000000..4aeb48eeb
--- /dev/null
+++ b/roms/u-boot/arch/arm/mach-bcm283x/include/mach/gpio.h
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2012 Vikram Narayananan
+ * <vikram186@gmail.com>
+ * (C) Copyright 2012,2015 Stephen Warren
+ */
+
+#ifndef _BCM2835_GPIO_H_
+#define _BCM2835_GPIO_H_
+
+#define BCM2835_GPIO_COUNT 54
+
+#define BCM2835_GPIO_FSEL_MASK 0x7
+#define BCM2835_GPIO_INPUT 0x0
+#define BCM2835_GPIO_OUTPUT 0x1
+#define BCM2835_GPIO_ALT0 0x4
+#define BCM2835_GPIO_ALT1 0x5
+#define BCM2835_GPIO_ALT2 0x6
+#define BCM2835_GPIO_ALT3 0x7
+#define BCM2835_GPIO_ALT4 0x3
+#define BCM2835_GPIO_ALT5 0x2
+
+#define BCM2835_GPIO_COMMON_BANK(gpio) ((gpio < 32) ? 0 : 1)
+#define BCM2835_GPIO_COMMON_SHIFT(gpio) (gpio & 0x1f)
+
+#define BCM2835_GPIO_FSEL_BANK(gpio) (gpio / 10)
+#define BCM2835_GPIO_FSEL_SHIFT(gpio) ((gpio % 10) * 3)
+
+struct bcm2835_gpio_regs {
+ u32 gpfsel[6];
+ u32 reserved1;
+ u32 gpset[2];
+ u32 reserved2;
+ u32 gpclr[2];
+ u32 reserved3;
+ u32 gplev[2];
+ u32 reserved4;
+ u32 gpeds[2];
+ u32 reserved5;
+ u32 gpren[2];
+ u32 reserved6;
+ u32 gpfen[2];
+ u32 reserved7;
+ u32 gphen[2];
+ u32 reserved8;
+ u32 gplen[2];
+ u32 reserved9;
+ u32 gparen[2];
+ u32 reserved10;
+ u32 gppud;
+ u32 gppudclk[2];
+};
+
+/**
+ * struct bcm2835_gpio_plat - GPIO platform description
+ *
+ * @base: Base address of GPIO controller
+ */
+struct bcm2835_gpio_plat {
+ unsigned long base;
+};
+
+#endif /* _BCM2835_GPIO_H_ */