1 /* 2 * Copyright (C) 2016 Socionext Inc. 3 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <linux/err.h> 9 #include <dm/device.h> 10 #include <dm/pinctrl.h> 11 #include <dm/uclass.h> 12 13 #include "init.h" 14 15 int uniphier_pin_init(const char *pinconfig_name) 16 { 17 struct udevice *pctldev, *config, *next; 18 int ret; 19 20 ret = uclass_first_device(UCLASS_PINCTRL, &pctldev); 21 if (ret) 22 return ret; 23 24 device_foreach_child_safe(config, next, pctldev) { 25 if (strcmp(config->name, pinconfig_name)) 26 continue; 27 28 return pinctrl_generic_set_state(pctldev, config); 29 } 30 31 return -ENODEV; 32 } 33