Source
1218
1218
if (gpioport >= RZA1_NPORTS) {
1219
1219
dev_err(rza1_pctl->dev,
1220
1220
"Invalid values in property %s\n", list_name);
1221
1221
return -EINVAL;
1222
1222
}
1223
1223
1224
1224
*chip = rza1_gpiochip_template;
1225
1225
chip->base = -1;
1226
1226
chip->label = devm_kasprintf(rza1_pctl->dev, GFP_KERNEL, "%pOFn",
1227
1227
np);
1228
+
if (!chip->label)
1229
+
return -ENOMEM;
1230
+
1228
1231
chip->ngpio = of_args.args[2];
1229
1232
chip->of_node = np;
1230
1233
chip->parent = rza1_pctl->dev;
1231
1234
1232
1235
range->id = gpioport;
1233
1236
range->name = chip->label;
1234
1237
range->pin_base = range->base = pinctrl_base;
1235
1238
range->npins = of_args.args[2];
1236
1239
range->gc = chip;
1237
1240
1319
1322
rza1_pctl->desc.npins = RZA1_NPINS;
1320
1323
rza1_pctl->ports = ports;
1321
1324
1322
1325
for (i = 0; i < RZA1_NPINS; ++i) {
1323
1326
unsigned int pin = RZA1_PIN_ID_TO_PIN(i);
1324
1327
unsigned int port = RZA1_PIN_ID_TO_PORT(i);
1325
1328
1326
1329
pins[i].number = i;
1327
1330
pins[i].name = devm_kasprintf(rza1_pctl->dev, GFP_KERNEL,
1328
1331
"P%u-%u", port, pin);
1332
+
if (!pins[i].name)
1333
+
return -ENOMEM;
1329
1334
1330
1335
if (i % RZA1_PINS_PER_PORT == 0) {
1331
1336
/*
1332
1337
* Setup ports;
1333
1338
* they provide per-port lock and logical base address.
1334
1339
*/
1335
1340
unsigned int port_id = RZA1_PIN_ID_TO_PORT(i);
1336
1341
1337
1342
ports[port_id].id = port_id;
1338
1343
ports[port_id].base = rza1_pctl->base;