mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 18:59:44 +00:00
58db844fc8
The soc info without initialization value should be put into data section. The driver could be used before relocation, with it in BSS section could cause issue, since BSS section is not initializated and it might overwrite other areas that used by others, such as dtb. Signed-off-by: Peng Fan <peng.fan@nxp.com>
41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2016 Peng Fan <van.freenix@gmail.com>
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <dm/pinctrl.h>
|
|
|
|
#include "pinctrl-imx.h"
|
|
|
|
static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __attribute__((section(".data")));
|
|
|
|
static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = {
|
|
.flags = ZERO_OFFSET_VALID,
|
|
};
|
|
|
|
static int imx7_pinctrl_probe(struct udevice *dev)
|
|
{
|
|
struct imx_pinctrl_soc_info *info =
|
|
(struct imx_pinctrl_soc_info *)dev_get_driver_data(dev);
|
|
|
|
return imx_pinctrl_probe(dev, info);
|
|
}
|
|
|
|
static const struct udevice_id imx7_pinctrl_match[] = {
|
|
{ .compatible = "fsl,imx7d-iomuxc", .data = (ulong)&imx7_pinctrl_soc_info },
|
|
{ .compatible = "fsl,imx7d-iomuxc-lpsr", .data = (ulong)&imx7_lpsr_pinctrl_soc_info },
|
|
{ /* sentinel */ }
|
|
};
|
|
|
|
U_BOOT_DRIVER(imx7_pinctrl) = {
|
|
.name = "imx7-pinctrl",
|
|
.id = UCLASS_PINCTRL,
|
|
.of_match = of_match_ptr(imx7_pinctrl_match),
|
|
.probe = imx7_pinctrl_probe,
|
|
.remove = imx_pinctrl_remove,
|
|
.priv_auto_alloc_size = sizeof(struct imx_pinctrl_priv),
|
|
.ops = &imx_pinctrl_ops,
|
|
.flags = DM_FLAG_PRE_RELOC,
|
|
};
|