Re: MPC5121e, Linux, simple IO ports
From: Anatolij Gustschin <agust@denx.de>
Date: 2013-03-31 09:51:55
Hello, On Thu, 21 Mar 2013 09:54:46 +0100 CF Studelec [off-list ref] wrote:
Hello, This is a simple board base on mpc5121e MCU. Gpio is detected: kernel is compiled with its support - i got gpiochip_find_base: found new base @224 in dmesg - on kernel 3.0.4. But i'm unable to access it through /sys/class/gpio. I can successfully export a pin (ie, if i type cat 224 > export, gpio224 is created), but i can't successfully control it: echo "out" > /sys/class/gpio/gpio224/direction cat /sys/class/gpio/gpio224/value 0 echo 1 > /sys/class/gpio/gpio224/value cat /sys/class/gpio/gpio224/value 0 My need is a simple chipselect (well, 3 chipselect exactly ), for a custom design. Running linux is mandatory. I suspect the MPC5121e to be in the bad function mode, so: - does anyone knows how to change mode ? What register can i acces and how ? does it worths a try ?
For GPIO0 - GPIO7 pins you additionally need to configure the pin mux for GPIO mode, see IO_CONTROL_GP register description in the manual.
- does anyone successfully performed simple IO control ?
We use it all the time, i.e. as SD-Card detect and/or write-protect GPIOs, as SPI Chips-Select GPIOs, etc. It works.
Last thing, i have tryed to access internal registers through /dev/mem, but no success. There are very few ressources available for this microcontroler, but i'm stick to it. Perhaps anybody knows how to access (read) internal registers with /proc or sys-fs ?
Accessing registers using /dev/mem should work (tested using devmem2.c tool with recent v3.9-rc4 kernel. Should work with older kernels too). Alternatively (as a quick test) you could configure the registers under U-Boot using "mw" command, assuming you are using U-Boot as a bootloader. HTH, Anatolij -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de