lkml.org 
[lkml]   [2014]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/10] watchdog: xilinx: Fix OF binding
    Date
    Use of_property_read_u32 functions to clean OF probing.

    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    ---

    drivers/watchdog/of_xilinx_wdt.c | 25 ++++++++++---------------
    1 file changed, 10 insertions(+), 15 deletions(-)

    diff --git a/drivers/watchdog/of_xilinx_wdt.c b/drivers/watchdog/of_xilinx_wdt.c
    index c229cc4..475440a6 100644
    --- a/drivers/watchdog/of_xilinx_wdt.c
    +++ b/drivers/watchdog/of_xilinx_wdt.c
    @@ -147,8 +147,7 @@ static u32 xwdt_selftest(struct xwdt_device *xdev)
    static int xwdt_probe(struct platform_device *pdev)
    {
    int rc;
    - u32 *tmptr;
    - u32 *pfreq;
    + u32 pfreq, enable_once;
    struct resource *res;
    struct xwdt_device *xdev;
    bool no_timeout = false;
    @@ -168,28 +167,24 @@ static int xwdt_probe(struct platform_device *pdev)
    if (IS_ERR(xdev->base))
    return PTR_ERR(xdev->base);

    - pfreq = (u32 *)of_get_property(pdev->dev.of_node,
    - "clock-frequency", NULL);
    -
    - if (pfreq == NULL) {
    + rc = of_property_read_u32(pdev->dev.of_node, "clock-frequency", &pfreq);
    + if (rc) {
    dev_warn(&pdev->dev,
    "The watchdog clock frequency cannot be obtained\n");
    no_timeout = true;
    }

    - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
    - "xlnx,wdt-interval", NULL);
    - if (tmptr == NULL) {
    + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-interval",
    + &xdev->wdt_interval);
    + if (rc) {
    dev_warn(&pdev->dev,
    "Parameter \"xlnx,wdt-interval\" not found\n");
    no_timeout = true;
    - } else {
    - xdev->wdt_interval = *tmptr;
    }

    - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
    - "xlnx,wdt-enable-once", NULL);
    - if (tmptr == NULL) {
    + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-enable-once",
    + &enable_once);
    + if (!rc && enable_once) {
    dev_warn(&pdev->dev,
    "Parameter \"xlnx,wdt-enable-once\" not found\n");
    watchdog_set_nowayout(xilinx_wdt_wdd, true);
    @@ -201,7 +196,7 @@ static int xwdt_probe(struct platform_device *pdev)
    */
    if (!no_timeout)
    xilinx_wdt_wdd->timeout = 2 * ((1 << xdev->wdt_interval) /
    - *pfreq);
    + pfreq);

    spin_lock_init(&xdev->spinlock);
    watchdog_set_drvdata(xilinx_wdt_wdd, xdev);
    --
    1.8.2.3
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2014-01-31 16:01    [W:3.991 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site