
On Fri, May 01, 2009 at 12:31:54AM +0200, Wolfgang Denk wrote:
Dear Anton,
In message 20090429215000.GA1092@oksana.dev.rtsoft.ru you wrote:
This patch implements simple hwconfig infrastructure: an interface for software knobs to control a hardware.
Thanks a lot.
We support hwconfig options with arguments. For example,
set hwconfig dr_usb,dr_usb_mode:peripheral,dr_usb_phy_type:ulpi
There are three hwconfig options selected:
- dr_usb - enable Dual-Role USB controller;
- dr_usb_mode:peripheral - USB in Function mode;
- dr_usb_phy_type:ulpi - USB should work with ULPI PHYs.
That gives a lot of typing, which in turn results in lots of typing errors, which in this case are probably nasty to debug.
Suggestion: instead of
set hwconfig dr_usb,dr_usb_mode:peripheral,dr_usb_phy_type:ulpi
use:
set hwconfig dr_usb:mode=peripheral,phy_type=ulpi
What do you think?
At first sight this looks great. But where should we stop? I mean, technically that is
dr_usb { mode = peripheral; phy_type = ulpi; };
I wonder if we want multi-level nesting capability, i.e.
dr_usb { mode = peripheral; phy { type = ulpi; clock = 48; }; };
We'd type it this way:
=> set hwconfig "
dr_usb { mode = peripheral; phy { type = ulpi; speed = 48; } } "
:-)
Or we can stop at one nesting level capability, just as you describe. Your suggestion is quite easy to implement, but full fledged parser is needed for the most generic case.
Thanks,