GPIO @ MPC5200
Sascha, Grant,
I'm running on 2.6.26-rc6 with an MPC5200B based system.
Looks like some (for me) crucial GPIO are touched during boot. Is this possible ?
Of course I have compiled in GPIO-Lib and specified the GPIOs in the dts. But no access yet - I'd like to preserve the setup from u-boot...
regards,
Andre
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
Quoted 9 lines · Andre Schwarz
Sascha, Grant,
I'm running on 2.6.26-rc6 with an MPC5200B based system.
Looks like some (for me) crucial GPIO are touched during boot. Is this possible ?
Of course I have compiled in GPIO-Lib and specified the GPIOs in the dts. But no access yet - I'd like to preserve the setup from u-boot...
The GPIO driver only writes to the GPIO registers when a driver actually requests to use them. At probe time, the gpio drivers read the current values from the GPIO registers, so current config should be preserved.
However, the gpiochip_dir hook explicitly sets the output value when it is called. It may be that when you are claiming the GPIO line it is getting set with a default (and wrong) value.
Another possibility; have you verified that it is the GPIO regs getting clobbered? Or is port_config getting changed on you? Which GPIO pins?
g.
Quoted 17 lines · Grant Likely
Quoted 10 lines · Andre Schwarz
Sascha, Grant,
I'm running on 2.6.26-rc6 with an MPC5200B based system.
Looks like some (for me) crucial GPIO are touched during boot. Is this possible ?
Of course I have compiled in GPIO-Lib and specified the GPIOs in the dts. But no access yet - I'd like to preserve the setup from u-boot...
The GPIO driver only writes to the GPIO registers when a driver actually requests to use them. At probe time, the gpio drivers read the current values from the GPIO registers, so current config should be preserved.
Quoted 9 lines
However, the
gpiochip_dirhook explicitly sets the output value when it is called. It may be that when you are claiming the GPIO line it is getting set with a default (and wrong) value.Another possibility; have you verified that it is the GPIO regs getting clobbered? Or is
port_configgetting changed on you? Which GPIO pins?g.
The pin in question is PSC2_4, i.e. a wake-up GPIO. It is configured as push-pull output and driven high.
Since it has an external pull-down resistor I can't say if it is driven low or re-configured as an input ...
I removed GPIO Lib and the problem is gone.
I'm not yet using it anyway under linux - they're mainly for system configuration (setting up muxes etc.).
I'll dig into it when I have some time.
thanks,
Andre
MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler - Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
Quoted 5 lines · Andre Schwarz
I removed GPIO Lib and the problem is gone.
I'm not yet using it anyway under linux - they're mainly for system configuration (setting up muxes etc.).I'll dig into it when I have some time.
When you do, try adding "#define DEBUG" to the top of mpc52xx_gpio.c and see what comes out of dmesg.
g.