Thread (24 messages) flat view 24 messages, 4 authors, 2007-12-10

Re: [i2c] [PATCH 0/4] Series to add device tree naming to i2c

From: Jon Smirl <hidden>
Date: 2007-12-09 21:35:10

On 12/9/07, Benjamin Herrenschmidt [off-list ref] wrote:
On Sun, 2007-12-09 at 15:57 -0500, Jon Smirl wrote:
quoted
Are there technical concerns with this series? The white space can be
fixed in a few minutes.

Adding a tag to differentiate matching types has implications that are
broader than just i2c. Shouldn't we do this first with the existing
scheme and then change the tagging process with later patches?
No, we should decide on what to do with the tagging process (or not do)
first, don't you think ? (If we need a tagging process, Scott had a
concern but it might be moot, let's discuss that first).
Right now the tags are simply strings. The second parameter is driver specific.

+static struct i2c_device_id rs5c372_id[] = {
+       {"rtc-rs5c372", rtc_rs5c372a},
+       {"rs5c372a", rtc_rs5c372a},
+       {"rs5c372b", rtc_rs5c372b},
+       {"rv5c386", rtc_rv5c386},
+       {"rv5c387a", rtc_rv5c387a},
+       {"ricoh,rs5c372a", rtc_rs5c372a},
+       {"ricoh,rs5c372b", rtc_rs5c372b},
+       {"ricoh,rv5c386", rtc_rv5c386},
+       {"ricoh,rv5c387a", rtc_rv5c387a},
+       {},
+};

The current mechanism is simple string matching there are no platform
specific namespaces.

We could wrap the device tree style names in a macro that adds a
non-printable character to the front.

Something like this:
#define DT_NAMESPACE "\1"
#define DT_NAME(x) (DT_NAMESPACE x)
+       {DT_NAME("ricoh,rv5c386"), rtc_rv5c386},

And then modify the mpc i2c driver to insert the DT_NAMESPACE in front
of the string.

Another solution would be to make the names disappear on non-device
tree platforms

in mod_devicetable.h:
#ifdef USING_DEVICE_TREES
#define DT_NAME(x) x
#else
#define DTNAME(x)
#endif

+static struct i2c_device_id rs5c372_id[] = {
+       {"rtc-rs5c372", rtc_rs5c372a},
+       {"rs5c372a", rtc_rs5c372a},
+       {"rs5c372b", rtc_rs5c372b},
+       {"rv5c386", rtc_rv5c386},
+       {"rv5c387a", rtc_rv5c387a},
+       DT_NAME({"ricoh,rs5c372a", rtc_rs5c372a},)
+       DT_NAME({"ricoh,rs5c372b", rtc_rs5c372b},)
+       DT_NAME({"ricoh,rv5c386", rtc_rv5c386},)
+       DT_NAME({"ricoh,rv5c387a", rtc_rv5c387a},)
+       {},

But what's the point in making these names specific to device trees?
They are perfectly valid names for the devices that could be used from
any platform.

-- 
Jon Smirl
jonsmirl@gmail.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help