Skip to contentSkip to conversation

GPIO @ MPC5200

DISCUSSION Andre Schwarz 2 participants 4 messages Jul 4, 2008

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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.

#2 lore raw
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_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.

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

#3 lore raw
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.