Hi Marc, [...] > > > +static int flexcan_stop_mode_enable_scfw(struct flexcan_priv *priv, > > > +bool enabled) { > > > + u8 idx = priv->can_idx; > > > + u32 rsrc_id, val; > > > + > > > + if (idx == 0) > > > + rsrc_id = IMX_SC_R_CAN_0; > > > + else if (idx == 1) > > > + rsrc_id = IMX_SC_R_CAN_1; > > > + else > > > + rsrc_id = IMX_SC_R_CAN_2; > > > > Can you introduce something like and make use of it: > > > > #define IMX_SC_R_CAN(x) (105 + (x)) > OK. I thought it over again, from my point of view, use macro here directly could be more intuitive, and can achieve a direct jump. If change to above wrapper, on the contrary make confusion, and generate the magic number 105. ☹ > > > + > > > + if (enabled) > > > + val = 1; > > > + else > > > + val = 0; > > > + > > > + /* stop mode request via scu firmware */ > > > + return imx_sc_misc_set_control(priv->sc_ipc_handle, rsrc_id, > > > +IMX_SC_C_IPG_STOP, val); } We still need use IMX_SC_C_IPG_STOP, why not be consistent? Best Regards, Joakim Zhang