Skip to contentSkip to conversation

Add OF match tables for the ChromeOs EC subdevices

PATCH New Sjoerd Simons 4 participants 7 messages Sep 19, 2014 – Oct 8, 2014

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

v2 cover Add OF match tables for the ChromeOs EC subdevices

[ This is essentially a resend, adding Javiers reviewed-by and fixing some small identation issues in the second patch. Also added Wolfgang and Dimitry in the to, as i missed them last time ]

The ChromeOS EC MFD driver registers its sub-devices with both a (platform) name and an OF compatibility string. As a result of this the modalias passed on to user-space will be based on the OF compatibility string. Thus to be able to rely on autoloading in case the subdevices are build as modules they need to export the necessary module aliases based to match the of information.

The two patches in these series add the requird of match information to the EC subdevices

I guess the first patch should through the i2c tree while the second one would be for the input tree?

Sjoerd Simons (2):
i2c: cros-ec-tunnel: Add of match table
input: cros_ec_keyb: Add of match table

 drivers/i2c/busses/i2c-cros-ec-tunnel.c | 9 +++++++++
 drivers/input/keyboard/cros_ec_keyb.c   | 9 +++++++++
 2 files changed, 18 insertions(+)
Signature · 1 line
2.1.0
#1 lore raw

PATCH v2 1/2 i2c: cros-ec-tunnel: Add of match table

To enable the cros-ec-tunnel driver to be auto-loaded when build as a module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string.

---
Changes in v2: none

 drivers/i2c/busses/i2c-cros-ec-tunnel.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/i2c/busses/i2c-cros-ec-tunnel.c +9 -0
index 05e033c..0403ec1 100644
@@ -310,11 +310,20 @@ static int ec_i2c_remove(struct platform_device *dev)
 	return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id cros_ec_i2c_of_match[] = {
+	{ .compatible = "google,cros-ec-i2c-tunnel" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, cros_ec_i2c_of_match);
+#endif
+
 static struct platform_driver ec_i2c_tunnel_driver = {
 	.probe = ec_i2c_probe,
 	.remove = ec_i2c_remove,
 	.driver = {
 		.name = "cros-ec-i2c-tunnel",
+		.of_match_table = of_match_ptr(cros_ec_i2c_of_match),
 	},
 };
 
Signature · 1 line
2.1.0
Applied
#2 lore raw

PATCH v2 1/2 i2c: cros-ec-tunnel: Add of match table

Quoted 7 lines · Sjoerd Simons

To enable the cros-ec-tunnel driver to be auto-loaded when build as a module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string.

Applied to for-next, thanks!

However, since you are working on this driver: sparse rightfully complains about:

drivers/i2c/busses/i2c-cros-ec-tunnel.c:97:44: warning: cast truncates bits from constant value (10000 becomes 0)

I don't know the EC protocol, can you check?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140929/556cfafe/attachment.sig>

#3 lore raw

PATCH v2 1/2 i2c: cros-ec-tunnel: Add of match table

Hello Wolfram,

Quoted 9 lines · Wolfram Sang
Quoted 7 lines · Sjoerd Simons

To enable the cros-ec-tunnel driver to be auto-loaded when build as a module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string.

Quoted 9 lines

Applied to for-next, thanks!

However, since you are working on this driver: sparse rightfully complains about:

drivers/i2c/busses/i2c-cros-ec-tunnel.c:97:44: warning: cast truncates bits from constant value (10000 becomes 0)

I don't know the EC protocol, can you check?

Doug posted a patch [0] to fix the issue you are reporting but it was not picked. I tested that the patch applies on top of linux-next + the latest cros_ec cleanups (that includes a patch for this i2c driver and was taken by Lee. So I think is safe for you take Doug's patch through your tree since it seems to not cause any conflict with the mfd tree.

Or if you prefer, I can re-post that patch for 3.19.

Best regards,
Javier

[0]: https://lkml.org/lkml/2014/6/23/830

#4 lore raw

PATCH v2 1/2 i2c: cros-ec-tunnel: Add of match table

Quoted 6 lines

Doug posted a patch [0] to fix the issue you are reporting but it was not picked. I tested that the patch applies on top of linux-next + the latest cros_ec cleanups (that includes a patch for this i2c driver and was taken by Lee. So I think is safe for you take Doug's patch through your tree since it seems to not cause any conflict with the mfd tree.

OK, thanks for the heads up. I picked it.

#5 lore raw

PATCH v2 2/2 input: cros_ec_keyb: Add of match table

In reply to Sjoerd Simons

To enable the cros_ec_keyb driver to be auto-loaded when build as module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string.

---
Changes in v2: Fixed some indentation issues

 drivers/input/keyboard/cros_ec_keyb.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/input/keyboard/cros_ec_keyb.c +9 -0
index 791781a..e1903ec 100644
@@ -342,10 +342,19 @@ static int cros_ec_keyb_resume(struct device *dev)
 
 static SIMPLE_DEV_PM_OPS(cros_ec_keyb_pm_ops, NULL, cros_ec_keyb_resume);
 
+#ifdef CONFIG_OF
+static const struct of_device_id cros_ec_keyb_of_match[] = {
+	{ .compatible = "google,cros-ec-keyb" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, cros_ec_keyb_of_match);
+#endif
+
 static struct platform_driver cros_ec_keyb_driver = {
 	.probe = cros_ec_keyb_probe,
 	.driver = {
 		.name = "cros-ec-keyb",
+		.of_match_table = of_match_ptr(cros_ec_keyb_of_match),
 		.pm	= &cros_ec_keyb_pm_ops,
 	},
 };
Signature · 1 line
2.1.0
maintainer Applied
#6 lore raw

PATCH 2/2 input: cros_ec_keyb: Add of match table

Quoted 7 lines · Sjoerd Simons

To enable the cros_ec_keyb driver to be auto-loaded when build as module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string.

Applied, thank you.

Quoted 33 lines

---
Changes in v2: Fixed some indentation issues

 drivers/input/keyboard/cros_ec_keyb.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/input/keyboard/cros_ec_keyb.c +9 -0
index 791781a..e1903ec 100644
@@ -342,10 +342,19 @@ static int cros_ec_keyb_resume(struct device *dev)
 
 static SIMPLE_DEV_PM_OPS(cros_ec_keyb_pm_ops, NULL, cros_ec_keyb_resume);
 
+#ifdef CONFIG_OF
+static const struct of_device_id cros_ec_keyb_of_match[] = {
+	{ .compatible = "google,cros-ec-keyb" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, cros_ec_keyb_of_match);
+#endif
+
 static struct platform_driver cros_ec_keyb_driver = {
 	.probe = cros_ec_keyb_probe,
 	.driver = {
 		.name = "cros-ec-keyb",
+		.of_match_table = of_match_ptr(cros_ec_keyb_of_match),
 		.pm	= &cros_ec_keyb_pm_ops,
 	},
 };
Signature · 1 line
2.1.0
Signature · 1 line
Dmitry