On 22/03/2022 03:55, Lh Kuo 郭力豪 wrote: >>> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >>> + if (IS_ERR(res)) >>> + return dev_err_probe(&pdev->dev, PTR_ERR(res), "resource get >>> +fail\n"); >>> + >>> + sp_data->regs = devm_ioremap(&pdev->dev, res->start, resource_size(res)); >>> + if (IS_ERR(sp_data->regs)) >>> + return dev_err_probe(&pdev->dev, PTR_ERR(sp_data->regs), "mas_base >>> +get fail\n"); >> >> Use devm_platform_ioremap_resource() instead. >> > > Other drivers must also access these registers. > Warning when using devm_platform_ioremap_resource > Can I keep the original settings? You should not map one region twice. How do you guarantee synchronization during for example updates of specific registers? In such case you need to use regmap and share it via syscon (although this does not solve synchronization on higher level - avoiding conflicting changes to same registers) Best regards, Krzysztof