.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * MEN 14F021P00 Board Management Controller (BMC) Watchdog Driver. |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2014 MEN Mikro Elektronik Nuernberg GmbH |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or modify it |
---|
7 | | - * under the terms of the GNU General Public License as published by the |
---|
8 | | - * Free Software Foundation; either version 2 of the License, or (at your |
---|
9 | | - * option) any later version. |
---|
10 | 6 | */ |
---|
11 | 7 | |
---|
12 | 8 | #include <linux/kernel.h> |
---|
.. | .. |
---|
117 | 113 | |
---|
118 | 114 | static int menf21bmc_wdt_probe(struct platform_device *pdev) |
---|
119 | 115 | { |
---|
| 116 | + struct device *dev = &pdev->dev; |
---|
120 | 117 | int ret, bmc_timeout; |
---|
121 | 118 | struct menf21bmc_wdt *drv_data; |
---|
122 | | - struct i2c_client *i2c_client = to_i2c_client(pdev->dev.parent); |
---|
| 119 | + struct i2c_client *i2c_client = to_i2c_client(dev->parent); |
---|
123 | 120 | |
---|
124 | | - drv_data = devm_kzalloc(&pdev->dev, |
---|
125 | | - sizeof(struct menf21bmc_wdt), GFP_KERNEL); |
---|
| 121 | + drv_data = devm_kzalloc(dev, sizeof(struct menf21bmc_wdt), GFP_KERNEL); |
---|
126 | 122 | if (!drv_data) |
---|
127 | 123 | return -ENOMEM; |
---|
128 | 124 | |
---|
.. | .. |
---|
130 | 126 | drv_data->wdt.info = &menf21bmc_wdt_info; |
---|
131 | 127 | drv_data->wdt.min_timeout = BMC_WD_TIMEOUT_MIN; |
---|
132 | 128 | drv_data->wdt.max_timeout = BMC_WD_TIMEOUT_MAX; |
---|
133 | | - drv_data->wdt.parent = &pdev->dev; |
---|
| 129 | + drv_data->wdt.parent = dev; |
---|
134 | 130 | drv_data->i2c_client = i2c_client; |
---|
135 | 131 | |
---|
136 | 132 | /* |
---|
.. | .. |
---|
140 | 136 | bmc_timeout = i2c_smbus_read_word_data(drv_data->i2c_client, |
---|
141 | 137 | BMC_CMD_WD_TIME); |
---|
142 | 138 | if (bmc_timeout < 0) { |
---|
143 | | - dev_err(&pdev->dev, "failed to get current WDT timeout\n"); |
---|
| 139 | + dev_err(dev, "failed to get current WDT timeout\n"); |
---|
144 | 140 | return bmc_timeout; |
---|
145 | 141 | } |
---|
146 | 142 | |
---|
147 | | - watchdog_init_timeout(&drv_data->wdt, bmc_timeout / 10, &pdev->dev); |
---|
| 143 | + watchdog_init_timeout(&drv_data->wdt, bmc_timeout / 10, dev); |
---|
148 | 144 | watchdog_set_nowayout(&drv_data->wdt, nowayout); |
---|
149 | 145 | watchdog_set_drvdata(&drv_data->wdt, drv_data); |
---|
150 | 146 | platform_set_drvdata(pdev, drv_data); |
---|
151 | 147 | |
---|
152 | 148 | ret = menf21bmc_wdt_set_bootstatus(drv_data); |
---|
153 | 149 | if (ret < 0) { |
---|
154 | | - dev_err(&pdev->dev, "failed to set Watchdog bootstatus\n"); |
---|
| 150 | + dev_err(dev, "failed to set Watchdog bootstatus\n"); |
---|
155 | 151 | return ret; |
---|
156 | 152 | } |
---|
157 | 153 | |
---|
158 | | - ret = watchdog_register_device(&drv_data->wdt); |
---|
159 | | - if (ret) { |
---|
160 | | - dev_err(&pdev->dev, "failed to register Watchdog device\n"); |
---|
| 154 | + ret = devm_watchdog_register_device(dev, &drv_data->wdt); |
---|
| 155 | + if (ret) |
---|
161 | 156 | return ret; |
---|
162 | | - } |
---|
163 | 157 | |
---|
164 | | - dev_info(&pdev->dev, "MEN 14F021P00 BMC Watchdog device enabled\n"); |
---|
165 | | - |
---|
166 | | - return 0; |
---|
167 | | -} |
---|
168 | | - |
---|
169 | | -static int menf21bmc_wdt_remove(struct platform_device *pdev) |
---|
170 | | -{ |
---|
171 | | - struct menf21bmc_wdt *drv_data = platform_get_drvdata(pdev); |
---|
172 | | - |
---|
173 | | - dev_warn(&pdev->dev, |
---|
174 | | - "Unregister MEN 14F021P00 BMC Watchdog device, board may reset\n"); |
---|
175 | | - |
---|
176 | | - watchdog_unregister_device(&drv_data->wdt); |
---|
| 158 | + dev_info(dev, "MEN 14F021P00 BMC Watchdog device enabled\n"); |
---|
177 | 159 | |
---|
178 | 160 | return 0; |
---|
179 | 161 | } |
---|
.. | .. |
---|
191 | 173 | .name = DEVNAME, |
---|
192 | 174 | }, |
---|
193 | 175 | .probe = menf21bmc_wdt_probe, |
---|
194 | | - .remove = menf21bmc_wdt_remove, |
---|
195 | 176 | .shutdown = menf21bmc_wdt_shutdown, |
---|
196 | 177 | }; |
---|
197 | 178 | |
---|