Re: [PATCH 7/8] iio: adc: ad7606: Switch to xxx_get_device_match_data

From: Guillaume Stols
Date: Sat Sep 14 2024 - 05:22:08 EST



On 8/17/24 17:33, Jonathan Cameron wrote:
On Thu, 15 Aug 2024 12:12:01 +0000
Guillaume Stols <gstols@xxxxxxxxxxxx> wrote:

On the parallel version, the current implementation is only compatible
with id tables and won't work with fx_nodes. So in this commit, the goal
is to switch to use get_device_match_data, in order to simplify the
logic of retrieving chip data.

Also, chip info is moved in the .h file so to be accessible to all the
driver files that can set a pointer to the corresponding chip as the
driver data.
This means each driver gets their own copy.

Better to use an extern in the header and keep the actual data
in the core module.

ack.

Given your previous comment about introducing platform_device_get_match_data, I guess I should instead do it directly in the driver's probe, like its done in axp20x_adc.c ? Somehting like that:

if (!dev_fwnode(&pdev->dev)) {
    const struct platform_device_id *id;

    id = platform_get_device_id(pdev);
    chip_info = (const struct ad7606_chip_info *)id->driver_data;
} else {
    struct device *dev = &pdev->dev;
    chip_info = device_get_match_data(dev);
}