aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-03-12 12:31:07 -0400
committerKevinOConnor <kevin@koconnor.net>2019-03-17 19:38:18 -0400
commitae24baf99a8be29fc3850580cd2c282f3d1b055e (patch)
tree63e8dbccffd779230746aed5e7dd7900ae4780cf
parent91cf497656a9ffaf2b35916bb1101fc4ac844539 (diff)
downloadkutter-ae24baf99a8be29fc3850580cd2c282f3d1b055e.tar.gz
kutter-ae24baf99a8be29fc3850580cd2c282f3d1b055e.tar.xz
kutter-ae24baf99a8be29fc3850580cd2c282f3d1b055e.zip
pru: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/pins.py14
-rw-r--r--src/pru/adc.c2
-rw-r--r--src/pru/gpio.c5
3 files changed, 8 insertions, 13 deletions
diff --git a/klippy/pins.py b/klippy/pins.py
index 26d0bf67..8cd9f636 100644
--- a/klippy/pins.py
+++ b/klippy/pins.py
@@ -13,18 +13,7 @@ class error(Exception):
# Hardware pin names
######################################################################
-def named_pins(fmt, port_count, bit_count=32):
- return { fmt % (port, portbit) : port * bit_count + portbit
- for port in range(port_count)
- for portbit in range(bit_count) }
-
-def beaglebone_pins():
- gpios = named_pins("gpio%d_%d", 4)
- gpios.update({"AIN%d" % i: i+4*32 for i in range(8)})
- return gpios
-
MCU_PINS = {
- "pru": beaglebone_pins(),
"linux": {"analog%d" % i: i for i in range(8)}, # XXX
}
@@ -141,8 +130,7 @@ beagleboneblack_mappings = {
def update_map_beaglebone(pins, mcu):
if mcu != 'pru':
raise error("Beaglebone aliases not supported on mcu '%s'" % (mcu,))
- for pin, gpio in beagleboneblack_mappings.items():
- pins[pin] = pins[gpio]
+ pins.update(beagleboneblack_mappings)
######################################################################
diff --git a/src/pru/adc.c b/src/pru/adc.c
index 81ec7fe3..d4458628 100644
--- a/src/pru/adc.c
+++ b/src/pru/adc.c
@@ -51,6 +51,8 @@ adc_full_reset(void)
have_done_reset = 1;
}
+DECL_ENUMERATION_RANGE("pin", "AIN0", 4 * 32, 8);
+
struct gpio_adc
gpio_adc_setup(uint8_t pin)
{
diff --git a/src/pru/gpio.c b/src/pru/gpio.c
index 79b313ad..1e298657 100644
--- a/src/pru/gpio.c
+++ b/src/pru/gpio.c
@@ -29,6 +29,11 @@ struct gpio_regs {
volatile uint32_t setdataout;
};
+DECL_ENUMERATION_RANGE("pin", "gpio0_0", GPIO(0, 0), 32);
+DECL_ENUMERATION_RANGE("pin", "gpio1_0", GPIO(1, 0), 32);
+DECL_ENUMERATION_RANGE("pin", "gpio2_0", GPIO(2, 0), 32);
+DECL_ENUMERATION_RANGE("pin", "gpio3_0", GPIO(3, 0), 32);
+
static struct gpio_regs *digital_regs[] = {
(void*)0x44e07000, (void*)0x4804c000, (void*)0x481ac000, (void*)0x481ae000
};