From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 From: Daniil Gnusarev To: devel-kernel@lists.altlinux.org Date: Mon, 14 Oct 2024 18:01:57 +0400 Message-ID: <20241014140221.535985-17-gnusarevda@basealt.ru> X-Mailer: git-send-email 2.42.2 In-Reply-To: <20241014140221.535985-1-gnusarevda@basealt.ru> References: <20241014140221.535985-1-gnusarevda@basealt.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [d-kernel] [PATCH 16/39] PVT: support register addressing with new firmware X-BeenThere: devel-kernel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Oct 2024 14:02:02 -0000 Archived-At: List-Archive: List-Post: In the latest SDKs, the addressing of PVT registers has changed. Instead of an index, a request is made specifying the base address. If the dts does not have the specified pvt_id, then we access the registers using the new scheme Signed-off-by: Daniil Gnusarev --- drivers/hwmon/bt1-pvt.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/hwmon/bt1-pvt.c b/drivers/hwmon/bt1-pvt.c index 0299df1ac325f..71a1c0dea484f 100644 --- a/drivers/hwmon/bt1-pvt.c +++ b/drivers/hwmon/bt1-pvt.c @@ -934,7 +934,16 @@ static int pvt_request_regs(struct pvt_hwmon *pvt) #else err = of_property_read_u32(pvt->dev->of_node, "pvt_id", &(pvt->pvt_id)); if (err) { - dev_err(pvt->dev, "couldn't find pvt_id\n"); + struct resource *res; + + dev_warn(pvt->dev, "couldn't find pvt_id, assume direct addressing\n"); + res = platform_get_resource(to_platform_device(pvt->dev), IORESOURCE_MEM, 0); + if (!res) + dev_err(pvt->dev, "couldn't find base address\n"); + else { + pvt->pvt_id = res->start; + err = 0; + } } #endif -- 2.42.2