]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: Initialize i2c_device_id arrays using member names
authorUwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Tue, 12 May 2026 15:21:25 +0000 (17:21 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Mon, 18 May 2026 07:47:18 +0000 (09:47 +0200)
While being less compact, using named initializers allows to more easily
see which members of the structs are assigned which value without having
to lookup the declaration of the struct. And it's also more robust
against changes to the struct definition.

The mentioned robustness is relevant for a planned change to struct
i2c_device_id that replaces .driver_data by an anonymous union.

This patch doesn't modify the compiled arrays, only their representation
in source form benefits. The former was confirmed with x86 and arm64
builds.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/20260512152125.924433-2-u.kleine-koenig@baylibre.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/gpio-max732x.c
drivers/gpio/gpio-pca953x.c
drivers/gpio/gpio-pca9570.c
drivers/gpio/gpio-pcf857x.c

index 281ba1740a6a032f912e944539509f8c065a4e35..24c67c91295490e7d2f6f89ff07b00e81bac2f7a 100644 (file)
@@ -103,16 +103,16 @@ static uint64_t max732x_features[] = {
 };
 
 static const struct i2c_device_id max732x_id[] = {
-       { "max7319", MAX7319 },
-       { "max7320", MAX7320 },
-       { "max7321", MAX7321 },
-       { "max7322", MAX7322 },
-       { "max7323", MAX7323 },
-       { "max7324", MAX7324 },
-       { "max7325", MAX7325 },
-       { "max7326", MAX7326 },
-       { "max7327", MAX7327 },
-       { },
+       { .name = "max7319", .driver_data = MAX7319 },
+       { .name = "max7320", .driver_data = MAX7320 },
+       { .name = "max7321", .driver_data = MAX7321 },
+       { .name = "max7322", .driver_data = MAX7322 },
+       { .name = "max7323", .driver_data = MAX7323 },
+       { .name = "max7324", .driver_data = MAX7324 },
+       { .name = "max7325", .driver_data = MAX7325 },
+       { .name = "max7326", .driver_data = MAX7326 },
+       { .name = "max7327", .driver_data = MAX7327 },
+       { }
 };
 MODULE_DEVICE_TABLE(i2c, max732x_id);
 
index 1fef733fe1f0df85e54a8bf667b2a358be16a80f..92fe40e718896b02897bec6300d4262072be7dd5 100644 (file)
 #define PCA_CHIP_TYPE(x)       ((x) & PCA_TYPE_MASK)
 
 static const struct i2c_device_id pca953x_id[] = {
-       { "pca6408", 8  | PCA953X_TYPE | PCA_INT, },
-       { "pca6416", 16 | PCA953X_TYPE | PCA_INT, },
-       { "pca9505", 40 | PCA953X_TYPE | PCA_INT, },
-       { "pca9506", 40 | PCA953X_TYPE | PCA_INT, },
-       { "pca9534", 8  | PCA953X_TYPE | PCA_INT, },
-       { "pca9535", 16 | PCA953X_TYPE | PCA_INT, },
-       { "pca9536", 4  | PCA953X_TYPE, },
-       { "pca9537", 4  | PCA953X_TYPE | PCA_INT, },
-       { "pca9538", 8  | PCA953X_TYPE | PCA_INT, },
-       { "pca9539", 16 | PCA953X_TYPE | PCA_INT, },
-       { "pca9554", 8  | PCA953X_TYPE | PCA_INT, },
-       { "pca9555", 16 | PCA953X_TYPE | PCA_INT, },
-       { "pca9556", 8  | PCA953X_TYPE, },
-       { "pca9557", 8  | PCA953X_TYPE, },
-       { "pca9574", 8  | PCA957X_TYPE | PCA_INT, },
-       { "pca9575", 16 | PCA957X_TYPE | PCA_INT, },
-       { "pca9698", 40 | PCA953X_TYPE, },
-
-       { "pcal6408", 8 | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "pcal6416", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "pcal6524", 24 | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "pcal6534", 34 | PCAL653X_TYPE | PCA_LATCH_INT, },
-       { "pcal9535", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "pcal9554b", 8  | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "pcal9555a", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
-
-       { "max7310", 8  | PCA953X_TYPE, },
-       { "max7312", 16 | PCA953X_TYPE | PCA_INT, },
-       { "max7313", 16 | PCA953X_TYPE | PCA_INT, },
-       { "max7315", 8  | PCA953X_TYPE | PCA_INT, },
-       { "max7318", 16 | PCA953X_TYPE | PCA_INT, },
-       { "pca6107", 8  | PCA953X_TYPE | PCA_INT, },
-       { "tca6408", 8  | PCA953X_TYPE | PCA_INT, },
-       { "tca6416", 16 | PCA953X_TYPE | PCA_INT, },
-       { "tca6418", 18 | TCA6418_TYPE | PCA_INT, },
-       { "tca6424", 24 | PCA953X_TYPE | PCA_INT, },
-       { "tca9538", 8  | PCA953X_TYPE | PCA_INT, },
-       { "tca9539", 16 | PCA953X_TYPE | PCA_INT, },
-       { "tca9554", 8  | PCA953X_TYPE | PCA_INT, },
-       { "xra1202", 8  | PCA953X_TYPE },
-
-       { "tcal6408", 8  | PCA953X_TYPE | PCA_LATCH_INT, },
-       { "tcal6416", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
+       { .name = "pca6408", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "pca6416", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9505", .driver_data = 40 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9506", .driver_data = 40 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9534", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9535", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9536", .driver_data = 4  | PCA953X_TYPE },
+       { .name = "pca9537", .driver_data = 4  | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9538", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9539", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9554", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9555", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca9556", .driver_data = 8  | PCA953X_TYPE },
+       { .name = "pca9557", .driver_data = 8  | PCA953X_TYPE },
+       { .name = "pca9574", .driver_data = 8  | PCA957X_TYPE | PCA_INT },
+       { .name = "pca9575", .driver_data = 16 | PCA957X_TYPE | PCA_INT },
+       { .name = "pca9698", .driver_data = 40 | PCA953X_TYPE },
+
+       { .name = "pcal6408",  .driver_data = 8  | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal6416",  .driver_data = 16 | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal6524",  .driver_data = 24 | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal6534",  .driver_data = 34 | PCAL653X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal9535",  .driver_data = 16 | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal9554b", .driver_data = 8  | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "pcal9555a", .driver_data = 16 | PCA953X_TYPE | PCA_LATCH_INT },
+
+       { .name = "max7310", .driver_data = 8  | PCA953X_TYPE },
+       { .name = "max7312", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "max7313", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "max7315", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "max7318", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "pca6107", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "tca6408", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "tca6416", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "tca6418", .driver_data = 18 | TCA6418_TYPE | PCA_INT },
+       { .name = "tca6424", .driver_data = 24 | PCA953X_TYPE | PCA_INT },
+       { .name = "tca9538", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "tca9539", .driver_data = 16 | PCA953X_TYPE | PCA_INT },
+       { .name = "tca9554", .driver_data = 8  | PCA953X_TYPE | PCA_INT },
+       { .name = "xra1202", .driver_data = 8  | PCA953X_TYPE },
+
+       { .name = "tcal6408", .driver_data = 8  | PCA953X_TYPE | PCA_LATCH_INT },
+       { .name = "tcal6416", .driver_data = 16 | PCA953X_TYPE | PCA_LATCH_INT },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, pca953x_id);
index 4a368803fb038556a188b3e763358afdf810c221..7a47a9aa0414e09718dcaf5175392e9ad6c2c2d7 100644 (file)
@@ -163,9 +163,9 @@ static const struct pca9570_chip_data slg7xl45106_gpio = {
 };
 
 static const struct i2c_device_id pca9570_id_table[] = {
-       { "pca9570", (kernel_ulong_t)&pca9570_gpio},
-       { "pca9571", (kernel_ulong_t)&pca9571_gpio },
-       { "slg7xl45106", (kernel_ulong_t)&slg7xl45106_gpio },
+       { .name = "pca9570", .driver_data = (kernel_ulong_t)&pca9570_gpio },
+       { .name = "pca9571", .driver_data = (kernel_ulong_t)&pca9571_gpio },
+       { .name = "slg7xl45106", .driver_data = (kernel_ulong_t)&slg7xl45106_gpio },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(i2c, pca9570_id_table);
index 3b9de8c3d924c62da5fff4db6e613b98eed235be..c942b959571b27646a57b76045b09db78de624ed 100644 (file)
 #include <linux/spinlock.h>
 
 static const struct i2c_device_id pcf857x_id[] = {
-       { "pcf8574", 8 },
-       { "pcf8574a", 8 },
-       { "pca8574", 8 },
-       { "pca9670", 8 },
-       { "pca9672", 8 },
-       { "pca9674", 8 },
-       { "pcf8575", 16 },
-       { "pca8575", 16 },
-       { "pca9671", 16 },
-       { "pca9673", 16 },
-       { "pca9675", 16 },
-       { "max7328", 8 },
-       { "max7329", 8 },
+       { .name = "pcf8574", .driver_data = 8 },
+       { .name = "pcf8574a", .driver_data = 8 },
+       { .name = "pca8574", .driver_data = 8 },
+       { .name = "pca9670", .driver_data = 8 },
+       { .name = "pca9672", .driver_data = 8 },
+       { .name = "pca9674", .driver_data = 8 },
+       { .name = "pcf8575", .driver_data = 16 },
+       { .name = "pca8575", .driver_data = 16 },
+       { .name = "pca9671", .driver_data = 16 },
+       { .name = "pca9673", .driver_data = 16 },
+       { .name = "pca9675", .driver_data = 16 },
+       { .name = "max7328", .driver_data = 8 },
+       { .name = "max7329", .driver_data = 8 },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, pcf857x_id);