int of_gpiochip_add(struct gpio_chip *chip) { int status; if ((!chip->of_node) && (chip->dev)) chip->of_node = chip->dev->of_node; if (!chip->of_node) return 0; if (!chip->of_xlate) { chip->of_gpio_n_cells = 2; chip->of_xlate = of_gpio_simple_xlate; }
status = of_gpiochip_add_pin_range(chip); if (status) return status;
of_node_get(chip->of_node);
of_gpiochip_scan_gpios(chip);
return 0; }