diff --git a/drivers/pinctrl/pinctrl_kinetis.c b/drivers/pinctrl/pinctrl_kinetis.c index 13b0c8ac720..7a8151c7be1 100644 --- a/drivers/pinctrl/pinctrl_kinetis.c +++ b/drivers/pinctrl/pinctrl_kinetis.c @@ -76,9 +76,13 @@ static int pinctrl_mcux_init(const struct device *dev) } #if DT_NODE_HAS_STATUS(DT_INST(0, nxp_kinetis_sim), okay) -#define PINCTRL_MCUX_DT_INST_CLOCK_SUBSYS(n) \ - CLK_GATE_DEFINE(DT_INST_CLOCKS_CELL(n, offset), \ - DT_INST_CLOCKS_CELL(n, bits)) +#define PINCTRL_MCUX_DT_INST_CLOCK_SUBSYS(n) \ + CLK_GATE_DEFINE(DT_INST_CLOCKS_CELL(n, offset), DT_INST_CLOCKS_CELL(n, bits)) +#elif DT_HAS_COMPAT_STATUS_OKAY(nxp_scg_k4) +#define PINCTRL_MCUX_DT_INST_CLOCK_SUBSYS(n) \ + (DT_INST_CLOCKS_CELL(n, mrcc_offset) == 0 \ + ? 0 \ + : MAKE_MRCC_REGADDR(MRCC_BASE, DT_INST_CLOCKS_CELL(n, mrcc_offset))) #else #define PINCTRL_MCUX_DT_INST_CLOCK_SUBSYS(n) \ DT_INST_CLOCKS_CELL(n, name)