On Fri, Mar 24, 2023 at 4:38 PM Chester Lin <clin@xxxxxxxx> wrote: > > The .data field in struct of_device_id is used as a const member so it's > inappropriate to attach struct s32_pinctrl_soc_info with of_device_id > because some members in s32_pinctrl_soc_info need to be filled by > pinctrl-s32cc at runtime. > > For this reason, struct s32_pinctrl_soc_info must be allocated in > pinctrl-s32cc and then create a new struct s32_pinctrl_soc_data in order > to represent const .data in of_device_id. To combine these two structures, > a s32_pinctrl_soc_data pointer is introduced in s32_pinctrl_soc_info. > > Besides, use of_device_get_match_data() instead of of_match_device() since > the driver only needs to retrieve the .data from of_device_id. ... > .compatible = "nxp,s32g2-siul2-pinctrl", > - .data = (void *) &s32_pinctrl_info, > + .data = (void *) &s32_pinctrl_data, Do you need casting now? -- With Best Regards, Andy Shevchenko