RFC: of_device_id: use pointer for the data field

Sascha Hauer s.hauer at pengutronix.de
Sun Apr 26 23:00:59 PDT 2015


On Sun, Apr 26, 2015 at 05:38:31PM +0300, Antony Pavlov wrote:
> Hi!
> 
> Just now barebox' of_device_id struct uses unsigned long type for data field:
> 
>   struct of_device_id {
>           char *compatible;
>           unsigned long data;
>   };
> 
> Here is of_device_id struct in linux kernel:
> 
>   struct of_device_id {
>           char name[32];
>           char type[32];
>           char compatible[128];
>           const void *data;
>   };
> 
> Just all data fields are used as pointers and need 'unsigned long' casting.
> E.g. see 'git grep -A 4 of_device_id drivers/' output:
> 
>   drivers/ata/sata-imx.c:static __maybe_unused struct of_device_id imx_sata_dt_ids[] = {
>   drivers/ata/sata-imx.c- {
>   drivers/ata/sata-imx.c-         .compatible = "fsl,imx6q-ahci",
>   drivers/ata/sata-imx.c-         .data = (unsigned long)&data_imx6,
>   drivers/ata/sata-imx.c- }, {
> 
> Could we use 'const void *' type for data field as linux kernel does?

Yes, good idea.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list