
Am Freitag, den 25.01.2013, 14:04 -0800 schrieb Stephen Warren:
On 01/24/2013 08:48 AM, Lucas Stach wrote:
Init pinmux in one shot, in order to avoid any conflicts.
diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c
+static struct pingroup_config tamonten_pinmux[] = {
- PINMUX_ENTRY(ATA, IDE, NORMAL, NORMAL), /* GPIO */
- PINMUX_ENTRY(ATB, SDIO4, NORMAL, NORMAL), /* MMC */
...
I believe this initializes every single pingroup on the SoC to something. In order to prevent any behavior changes, wouldn't it be better to first fill in this table only with entries that achieve the same pinmux programming that used to be performed by the C code you're removing? Then, a separate later patch could fill in missing items in the pinmux table. I think that'd end up being much safer and easier to validate.
As I wrote in the cover letter this initializes the pinmux to the same values the Linux kernel uses. I don't consider it a safer approach to pull out the old pinmux from the C Code and then later building a conflict free full muxtable out of this.
However I made sure to go through the C Code to see which pads need to be un-tristated. At that time I cross-checked the table with the functions used by the C Code. But as a human I'm not safe from mistakes.
Regards, Lucas