1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright 2018 NXP 4 */ 5 6 #include <common.h> 7 #include <dm/device.h> 8 #include <dm/pinctrl.h> 9 10 #include "pinctrl-imx.h" 11 12 DECLARE_GLOBAL_DATA_PTR; 13 14 static struct imx_pinctrl_soc_info imx8_pinctrl_soc_info = { 15 .flags = IMX8_USE_SCU, 16 }; 17 18 static int imx8_pinctrl_probe(struct udevice *dev) 19 { 20 struct imx_pinctrl_soc_info *info = 21 (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev); 22 23 return imx_pinctrl_probe(dev, info); 24 } 25 26 static const struct udevice_id imx8_pinctrl_match[] = { 27 { .compatible = "fsl,imx8qxp-iomuxc", .data = (ulong)&imx8_pinctrl_soc_info }, 28 { /* sentinel */ } 29 }; 30 31 U_BOOT_DRIVER(imx8_pinctrl) = { 32 .name = "imx8_pinctrl", 33 .id = UCLASS_PINCTRL, 34 .of_match = of_match_ptr(imx8_pinctrl_match), 35 .probe = imx8_pinctrl_probe, 36 .remove = imx_pinctrl_remove, 37 .priv_auto_alloc_size = sizeof(struct imx_pinctrl_priv), 38 .ops = &imx_pinctrl_ops, 39 .flags = DM_FLAG_PRE_RELOC, 40 }; 41