[PATCH] Fix the LPC47M192 SuperIO on the MPC8641 HPCN
Andy Fleming
afleming at freescale.com
Fri Jun 8 06:01:24 EST 2007
On Jun 7, 2007, at 11:35, Segher Boessenkool wrote:
>>> Hardcoded I/O port numbers always worry me a little. I know that
>>> this
>>> is
>>> supposed to work in general, but can't you read the I/O port range
>>> from
>>> a device tree property?
>>
>> I suppose I could create a device node for the Super I/O config
>> registers and use those instead of hardcoding it here.
>
> I'd just hide it all, do this setup in the firmware,
> where it belongs, and don't expose the superio config
> in the device tree.
No more. No more firmware-only initializations. It sounds great, in
principle, until you actually have to figure out why someone's setup
isn't working. I'm tired of having to see if the dts, u-boot, and
Linux are in sync. If Linux wants to use a device, I think it's not
unreasonable to have it setup the device itself. That way, Linux can
do whatever it wants with the device, and not have to rely on U-Boot
(or some other firmware) setting up the appropriate bits.
>
>> superio_cfg at 4e {
>> reg = <1 4e 2>;
>> compatible = "smsc-lpc47m192-cfg";
>> };
>>
>> I'm not sure if the name and compatible properties are appropriate
>> though. Any recommendations?
>
> "superio" and "smsc,lpc47m192" I'd say. You also
> then should link the logical devices on the superio
> to the device nodes that represent those. I'm not
> sure this is all worth it, this is low-level setup
> the firmware should do and everything else can treat
> it as a black box.
Please...no. What happens next is that we find a small bug that
requires we modify U-Boot to do the initialization slightly
differently, and then requires Linux to act slightly differently.
And then I get emails every day from people wondering why their
boards don't work.
Andy
More information about the Linuxppc-dev
mailing list