From 5978bb7d4ef834345327153eb101d8de8baa14b1 Mon Sep 17 00:00:00 2001 From: Iwona Winiarska Date: Mon, 9 May 2022 20:18:57 +0200 Subject: peci: core: Use "domain" of-property peci_client can be created dynamically using sysfs API or during build time using DTS. Let's use extended DTS properties to create peci_client corresponding to specific Domain ID. Signed-off-by: Iwona Winiarska --- drivers/peci/peci-core.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/peci/peci-core.c b/drivers/peci/peci-core.c index 08bf1a759324..b3328d6d1c6f 100644 --- a/drivers/peci/peci-core.c +++ b/drivers/peci/peci-core.c @@ -1743,7 +1743,7 @@ static struct peci_client *peci_of_register_device(struct peci_adapter *adapter, { struct peci_board_info info = {}; struct peci_client *client; - u32 addr; + u32 addr, domain_id; int ret; dev_dbg(&adapter->dev, "register %pOF\n", node); @@ -1757,8 +1757,16 @@ static struct peci_client *peci_of_register_device(struct peci_adapter *adapter, ret = peci_check_addr_validity(addr); if (ret) return ERR_PTR(ret); + + ret = of_property_read_u32(node, "domain", &domain_id); + if (ret || peci_check_domain_validity(domain_id)) { + dev_dbg(&adapter->dev, "invalid domain on %pOF, fallback to domain 0\n", node); + domain_id = 0; + } + info.addr = addr; info.of_node = node; + info.domain_id = domain_id; client = peci_new_device(adapter, &info); if (!client) -- cgit v1.2.3