[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180316201925.GA18013@himanshu-Vostro-3559>
Date: Sat, 17 Mar 2018 01:49:25 +0530
From: Himanshu Jha <himanshujha199640@...il.com>
To: Manish Narani <manish.narani@...inx.com>
Cc: jic23@...nel.org, knaack.h@....de, lars@...afoo.de,
pmeerw@...erw.net, michal.simek@...inx.com, lee.jones@...aro.org,
broonie@...nel.org, arnaud.pouliquen@...com,
quentin.schulz@...e-electrons.com, linus.walleij@...aro.org,
ksenija.stanojevic@...il.com, arnd@...db.de, martenli@...s.com,
jan.kiszka@...mens.com, lukas@...ner.de, vilhelm.gray@...il.com,
geert+renesas@...der.be, fabio.estevam@....com,
jackoalan@...il.com, mnarani@...inx.com, mike.looijmans@...ic.nl,
alexander.sverdlin@...il.com, jacopo+renesas@...ndi.org,
linux-kernel@...r.kernel.org, linux-iio@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [RFC PATCH] iio: adc: Add Xilinx AMS driver
On Thu, Mar 15, 2018 at 08:12:27PM +0530, Manish Narani wrote:
> The AMS includes an ADC as well as on-chip sensors that can be used to
> sample external voltages and monitor on-die operating conditions, such as
> temperature and supply voltage levels. The AMS has two SYSMON blocks.
> PL-SYSMON block is capable of monitoring off chip voltage and temperature.
> PL-SYSMON block has DRP, JTAG and I2C interface to enable monitoring from
> external master. Out of these interface currently only DRP is supported.
> Other block PS-SYSMON is memory mapped to PS.
>
> The AMS can use internal channels to monitor voltage and temperature
> as well as one primary and up to 16 auxiliary channels for measuring
> external voltages.
>
> The voltage and temperature monitoring channels also have event
> capability which allows to generate an interrupt when their value
> falls below or raises above a set threshold.
>
> Signed-off-by: Manish Narani <mnarani@...inx.com>
> ---
[..]
> +static const struct of_device_id ams_of_match_table[] = {
> + { .compatible = "xlnx,zynqmp-ams", &ams_pl_apb },
> + { }
> +};
> +MODULE_DEVICE_TABLE(of, ams_of_match_table);
[..]
> +static int ams_probe(struct platform_device *pdev)
> +{
> + struct iio_dev *indio_dev;
> + struct ams *ams;
> + struct resource *res;
> + const struct of_device_id *id;
> + int ret;
> +
> + if (!pdev->dev.of_node)
> + return -ENODEV;
> +
> + id = of_match_node(ams_of_match_table, pdev->dev.of_node);
> + if (!id)
> + return -ENODEV;
Is the above check required ?
Isn't the probe function called if and only if a match is found in
ams_of_match_table[] since it is a pure OF driver ?
And therefore the above condition would never happen!
> +static struct platform_driver ams_driver = {
> + .probe = ams_probe,
> + .remove = ams_remove,
> + .driver = {
> + .name = "ams",
> + .pm = &ams_pm_ops,
> + .of_match_table = ams_of_match_table,
> + },
> +};
> +module_platform_driver(ams_driver);
--
Thanks
Himanshu Jha
Powered by blists - more mailing lists