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 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox