Message ID | 20200503135855.11484-5-peng.fan@nxp.com |
---|---|
State | Accepted |
Commit | adb3bd7654467765ecb271a21953739679638f01 |
Headers | show |
Series | [V3,1/9] uclass: cpu: Add new API to get udevice for current CPU | expand |
> Return 4 is not correct on i.MX8DX/DXL/8QM and etc. we need to count > available cpu node with device_type "cpu". > Reviewed-by: Simon Glass <sjg at chromium.org> > Signed-off-by: Peng Fan <peng.fan at nxp.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c index 95653683ac..7c54c290b8 100644 --- a/drivers/cpu/imx8_cpu.c +++ b/drivers/cpu/imx8_cpu.c @@ -118,7 +118,24 @@ static int cpu_imx_get_info(struct udevice *dev, struct cpu_info *info) static int cpu_imx_get_count(struct udevice *dev) { - return 4; + ofnode node; + int num = 0; + + ofnode_for_each_subnode(node, dev_ofnode(dev->parent)) { + const char *device_type; + + if (!ofnode_is_available(node)) + continue; + + device_type = ofnode_read_string(node, "device_type"); + if (!device_type) + continue; + + if (!strcmp(device_type, "cpu")) + num++; + } + + return num; } static int cpu_imx_get_vendor(struct udevice *dev, char *buf, int size)