Writing Pin-muxing registers in an am3359.
robjsstewart at ...196...
Thu Oct 24 14:57:08 CEST 2013
On a TI am3359 processor (Beaglebone Black) I'm attempting to attempting
to control the GPIO pin-muxing through the Control subsystem registers
which start at 0x4e100000. I can read and write to the GPIO0 through
GPIO3 registers correctly through MMIO after attaching the device
memory, but when I try to write to any of the pin mux registers nothing
is written and no errors are output.
The code I've written to set up pin muxing resides in a gpio driver
which is a modified version of an am 33xx gpio driver I pulled from the
With verbosity turned on, I see the that the pin mux registers are
attached to local memory:
Genode::Range_allocator*): I/O mem [44e10000,44e11000)//
//[init -> gpio_drv] GPIO_control base is 0x44e10000 local is 0x4000/
I write a value of 5 to the register offset 0x800 into the Control
/[init -> gpio_drv] mmio write 0x4800: 0x00000005//
//[init -> gpio_drv] void Omap_driver::set_pin_controls(int, int, int):
B=1, P=0, Mode=5, Input=0, Offset=0/
In jdb I see that the value at 0x4800 has not changed after apparently
writing 5 to it.
I believe I've set up the IO memory mapping correctly, the values read
from the pin muxing registers look correct, and the GPIO subsystem
appears to be set up correctly as I can turn on and off some LEDs.
Is there something I need to do to enable writing to the memory region
containing the Control registers?
Thanks for any help.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the users