Re: [PATCH 1/7] drivers: bus: Add ti-sysc bus driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 11, 2019 at 7:16 AM Teresa Remmet <t.remmet@xxxxxxxxx> wrote:
>
> Adds minimal support for the sysc interconnect target module found
> on many TI SoCs. With this device tree includes have been rearagned.
> We need the driver to probe the child devices of the bus.
>
> Signed-off-by: Teresa Remmet <t.remmet@xxxxxxxxx>
> ---
>  drivers/bus/Kconfig   |  7 +++++++
>  drivers/bus/Makefile  |  1 +
>  drivers/bus/ti-sysc.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 53 insertions(+)
>  create mode 100644 drivers/bus/ti-sysc.c
>
> diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig
> index 202df59762e8..7d35a663fdb5 100644
> --- a/drivers/bus/Kconfig
> +++ b/drivers/bus/Kconfig
> @@ -6,6 +6,13 @@ config BUS_OMAP_GPMC
>         depends on OMAP_GPMC
>         bool "TI OMAP/AM33xx GPMC support"
>
> +config TI_SYSC
> +       depends on ARCH_OMAP
> +       bool "TI sysc interconnect target module driver"
> +       help
> +          Generic driver for Texas Instruments interconnect target module
> +          found on many TI SoCs.
> +
>  config IMX_WEIM
>         depends on ARCH_IMX
>         bool "i.MX WEIM driver"
> diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
> index 4b7aa888aba8..ba5cee40636b 100644
> --- a/drivers/bus/Makefile
> +++ b/drivers/bus/Makefile
> @@ -1,3 +1,4 @@
>  obj-$(CONFIG_BUS_OMAP_GPMC)    += omap-gpmc.o
>  obj-$(CONFIG_IMX_WEIM)         += imx-weim.o
>  obj-$(CONFIG_MVEBU_MBUS)       += mvebu-mbus.o
> +obj-$(CONFIG_TI_SYSC)          += ti-sysc.o
> diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
> new file mode 100644
> index 000000000000..b42ee7c895c7
> --- /dev/null
> +++ b/drivers/bus/ti-sysc.c
> @@ -0,0 +1,45 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright (C) 2019 Phytec Messtechnik GmbH, Teresa Remmet <t.remmet@xxxxxxxxx>
> + */
> +
> +#include <common.h>
> +#include <init.h>
> +#include <of.h>
> +#include <linux/err.h>
> +
> +static const struct of_device_id sysc_match_table[] = {
> +       { .compatible = "simple-bus", },
> +       { /* sentinel */ },
> +};
> +
> +static int ti_sysc_probe(struct device_d *dev)
> +{
> +       int ret;
> +
> +       ret = of_platform_populate(dev->device_node, sysc_match_table, dev);

Is sysc_match_table really necessary? AFAIK that argument can be NULL
unless on of the child nodes needs to be treated like a platform bus
as well.

> +       if (ret)
> +               dev_err(dev, "%s fail to create devices.\n",
> +                                       dev->device_node->full_name);
> +       return ret;
> +};
> +
> +static struct of_device_id ti_sysc_dt_ids[] = {
> +       { .compatible = "ti,sysc-omap4",},
> +       { .compatible = "ti,sysc-omap4-simple",},
> +       { .compatible = "ti,sysc-omap4-timer",},
> +       { .compatible = "ti,sysc-omap2",},
> +       { },
> +};
> +
> +static struct driver_d ti_sysc_driver = {
> +       .name = "ti-sysc",
> +       .probe = ti_sysc_probe,
> +       .of_compatible = DRV_OF_COMPAT(ti_sysc_dt_ids),
> +};
> +
> +static int ti_sysc_init(void)
> +{
> +       return platform_driver_register(&ti_sysc_driver);
> +}
> +postcore_initcall(ti_sysc_init);

postcore_platform_driver()?

Thanks,
Andrey Smirnov

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux