On 20/01/2023 15:10, Yann Sionneau wrote: > From: Jules Maselbas <jmaselbas@xxxxxxxxx> > > The Power Controller (pwr-ctrl) control cores reset and wake-up > procedure. > + > +static struct device_node * __init get_pwr_ctrl_node(void) > +{ > + const phandle *ph; > + struct device_node *cpu; > + struct device_node *node; > + > + cpu = of_get_cpu_node(raw_smp_processor_id(), NULL); > + if (!cpu) { > + pr_err("Failed to get CPU node\n"); > + return NULL; > + } > + > + ph = of_get_property(cpu, "power-controller", NULL); > + if (!ph) { > + pr_err("Failed to get power-controller phandle\n"); > + return NULL; > + } > + > + node = of_find_node_by_phandle(be32_to_cpup(ph)); > + if (!node) { > + pr_err("Failed to get power-controller node\n"); > + return NULL; > + } > + > + return node; > +} > + > +int __init kvx_pwr_ctrl_probe(void) > +{ > + struct device_node *ctrl; > + > + ctrl = get_pwr_ctrl_node(); > + if (!ctrl) { > + pr_err("Failed to get power controller node\n"); > + return -EINVAL; > + } > + > + if (!of_device_is_compatible(ctrl, "kalray,kvx-pwr-ctrl")) { > + pr_err("Failed to get power controller node\n"); No. Drivers go to drivers, not to arch directory. This should be a proper driver instead of some fake stub doing its own driver matching. You need to rework this. Best regards, Krzysztof