pru: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
91cf497656
commit
ae24baf99a
|
@ -13,18 +13,7 @@ class error(Exception):
|
||||||
# Hardware pin names
|
# 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 = {
|
MCU_PINS = {
|
||||||
"pru": beaglebone_pins(),
|
|
||||||
"linux": {"analog%d" % i: i for i in range(8)}, # XXX
|
"linux": {"analog%d" % i: i for i in range(8)}, # XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,8 +130,7 @@ beagleboneblack_mappings = {
|
||||||
def update_map_beaglebone(pins, mcu):
|
def update_map_beaglebone(pins, mcu):
|
||||||
if mcu != 'pru':
|
if mcu != 'pru':
|
||||||
raise error("Beaglebone aliases not supported on mcu '%s'" % (mcu,))
|
raise error("Beaglebone aliases not supported on mcu '%s'" % (mcu,))
|
||||||
for pin, gpio in beagleboneblack_mappings.items():
|
pins.update(beagleboneblack_mappings)
|
||||||
pins[pin] = pins[gpio]
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
|
@ -51,6 +51,8 @@ adc_full_reset(void)
|
||||||
have_done_reset = 1;
|
have_done_reset = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECL_ENUMERATION_RANGE("pin", "AIN0", 4 * 32, 8);
|
||||||
|
|
||||||
struct gpio_adc
|
struct gpio_adc
|
||||||
gpio_adc_setup(uint8_t pin)
|
gpio_adc_setup(uint8_t pin)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,6 +29,11 @@ struct gpio_regs {
|
||||||
volatile uint32_t setdataout;
|
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[] = {
|
static struct gpio_regs *digital_regs[] = {
|
||||||
(void*)0x44e07000, (void*)0x4804c000, (void*)0x481ac000, (void*)0x481ae000
|
(void*)0x44e07000, (void*)0x4804c000, (void*)0x481ac000, (void*)0x481ae000
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue