blob: 147e2f3c98469b7db546cbf6f0b356bec4e9118a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#pragma once
#include <linux/types.h>
// values from <https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf>
typedef uint32_t ti_am335x_word_t;
// p. 180: "Control Module"
#define TI_AM335X_CM_ADDR 0x44E10000
// p. 182: "GPIO1"
#define TI_AM335X_GPIO1_ADDR 0x4804C000
// p. 1459: "conf_gpmc_a3"
#define TI_AM335X_CM_GPMC_A3_ADDR (TI_AM335X_CM_ADDR + 0x84C)
// p. 4990, variable names copied as-is
#define GPIO_OE (0x134 / (sizeof(ti_am335x_word_t)))
#define GPIO_DATAIN (0x138 / (sizeof(ti_am335x_word_t)))
#define GPIO_CLEARDATAOUT (0x190 / (sizeof(ti_am335x_word_t)))
#define GPIO_SETDATAOUT (0x194 / (sizeof(ti_am335x_word_t)))
// total size of GPIO registers from p. 4990 (in bytes)
#define GPIO_REG_SIZE 0x198
#define PIN 18
|