1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2016 Peng Fan <van.freenix@gmail.com> 4 */ 5 6 #include <dm.h> 7 #include <dm/pinctrl.h> 8 9 #include "pinctrl-imx.h" 10 11 static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __section(".data"); 12 13 static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = { 14 .flags = ZERO_OFFSET_VALID, 15 }; 16 17 static const struct udevice_id imx7_pinctrl_match[] = { 18 { .compatible = "fsl,imx7d-iomuxc", .data = (ulong)&imx7_pinctrl_soc_info }, 19 { .compatible = "fsl,imx7d-iomuxc-lpsr", .data = (ulong)&imx7_lpsr_pinctrl_soc_info }, 20 { /* sentinel */ } 21 }; 22 23 static const struct pinctrl_ops imx7_pinctrl_ops = { 24 .set_state = imx_pinctrl_set_state_mmio, 25 }; 26 27 U_BOOT_DRIVER(imx7_pinctrl) = { 28 .name = "imx7-pinctrl", 29 .id = UCLASS_PINCTRL, 30 .of_match = of_match_ptr(imx7_pinctrl_match), 31 .probe = imx_pinctrl_probe_mmio, 32 .remove = imx_pinctrl_remove_mmio, 33 .priv_auto = sizeof(struct imx_pinctrl_priv), 34 .ops = &imx7_pinctrl_ops, 35 .flags = DM_FLAG_PRE_RELOC, 36 }; 37