Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1507692imm; Wed, 1 Aug 2018 17:54:55 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcExLOFms39POs5xHoiW6O8oNYYO1gvkHsg4z4jogMdyVutZM6ETKf6cpwPExt7kQT6AT5m X-Received: by 2002:a63:6c05:: with SMTP id h5-v6mr548192pgc.367.1533171295860; Wed, 01 Aug 2018 17:54:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533171295; cv=none; d=google.com; s=arc-20160816; b=r2aIlreFhkiQx8juHa9gceT862sDVJvNSewrc5dJ1KKZ08OzlV38QF+7HZbjsXwLwO ul5SHTfEtOPflw0cA81q9EGWSw7csfyHQHFD+wQ6SGwFJw0YBakSae/iYfmVDIaVo58h 1LSEWg33PBD/330cBuvDbfffRcvf0eOtyqLlpyXQaK4rQwaPQvvXAxFdgk2vqWBbJhD+ 7DBXWZCOOWXiMcgx6gX4hQg/IFuRz1B3z1CtGEl34mtbglcKi7WbfOvJ7/D4rpbFzJIA CVAyNMHQKURq2JGw8lwTC1v4L+A+iRfYPRO1kVyhWchV+l5RcgMJmIGyCbjIfCy7HXek Ah3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=VsjrZXC5OpUj/mRiqlhQAUbom/HbTgymFwHCvgsVH+Q=; b=XHhO4zDre0ZMruHjfNRmnUlKKtCVrVo1cyFUDwkuz0IUekSCLXFRZvNoOxQdtUZgMG 1OfrP01nWdO8LAcv8k/27dJJpCvikP1NII+bhquk6gka8dFg96AB0kGm696nHXt2UZfO AtdoYIWfnIgRU6UOjubZ7kyZjyRYHArqj08K5JonbmzEmBCqtszmgo6Slg93v01wN0p+ Izq5MDU2oUUr7DEVp/7U1wyetrWRgijwFri3l3i9nAKLLbO/AvgS9R9SWx5RyGEKXjRK PQXjwMOHz8X/FOS6E32KdK0waqZs2BMIJZ+BBEBBTZ5Ajq10DWnW5NG25C4GM+dPQ1/c ZfMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=DVmxEOUY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h16-v6si563163pgb.39.2018.08.01.17.54.41; Wed, 01 Aug 2018 17:54:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=DVmxEOUY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732443AbeHBCmP (ORCPT + 99 others); Wed, 1 Aug 2018 22:42:15 -0400 Received: from mail-qt0-f196.google.com ([209.85.216.196]:34939 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732392AbeHBCmO (ORCPT ); Wed, 1 Aug 2018 22:42:14 -0400 Received: by mail-qt0-f196.google.com with SMTP id a5-v6so563750qtp.2 for ; Wed, 01 Aug 2018 17:53:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VsjrZXC5OpUj/mRiqlhQAUbom/HbTgymFwHCvgsVH+Q=; b=DVmxEOUYOHzrEWaNwNqxrjCBhcbHLa9zr8AAQd246c+q6pGHg6yCXVKHxLVXb7jGPX WOstrBxw6kjm3pxUB/wfVKzK+cNa8uDbFgaU9pQFOCw60q+J7kKP2ZW+DCxpHYvEEkCu XkUoDC1wJ6CYcoLxqw9yflFbYhgy6RYUKq21o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VsjrZXC5OpUj/mRiqlhQAUbom/HbTgymFwHCvgsVH+Q=; b=eYmQrxrY/ppFBC5irj7KucnxHG7HZgELLKgPh1zzBGnBR5rw4Wzx6AEk3LnBYrIvyL hITnAVh2Mz9oNBiNLnClQZPH0kk1hJJNO/Vdxi17xzZXOdORcb3uS9BWLDG/nOrx1AbP bD6Dneav77kZ0u2Eyf4OSZmTUPr1OKp7mpctFdbnR8l4uBrPLv5pUhZ7PbNLns1/PBXo +voscJ9/9KFxmoSu+rp8uHEhfREJsx71OlI4k57diiUMI3N8BhWYnlgIT3XVJ5s4u7WX n7lZM5rtikSXbuRqfZnOjv84xjjAfmG+AmnnvHGREJnfmvzDbrqYQNcH11cP7iLmy5/m gfLA== X-Gm-Message-State: AOUpUlHy/+UEwBo7K9TI2H0h/cey9E0RjtywXHEc/1Ai7Yg52meOk605 jqw6R2PKKboGltZ0/hJSecxZdQ== X-Received: by 2002:a0c:aa06:: with SMTP id d6-v6mr649834qvb.26.1533171224345; Wed, 01 Aug 2018 17:53:44 -0700 (PDT) Received: from lbrmn-lnxub86.ric.broadcom.com ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id e81-v6sm325116qka.3.2018.08.01.17.53.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 01 Aug 2018 17:53:43 -0700 (PDT) From: Arun Parameswaran To: "David S. Miller" , Florian Fainelli , Andrew Lunn , Rob Herring , Mark Rutland , Ray Jui , Scott Branden , Catalin Marinas , Will Deacon Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Arun Parameswaran Subject: [PATCH v4 2/8] net: phy: Fix the register offsets in Broadcom iProc mdio mux driver Date: Wed, 1 Aug 2018 17:53:47 -0700 Message-Id: <1533171233-14557-3-git-send-email-arun.parameswaran@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533171233-14557-1-git-send-email-arun.parameswaran@broadcom.com> References: <1533171233-14557-1-git-send-email-arun.parameswaran@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Modify the register offsets in the Broadcom iProc mdio mux to start from the top of the register address space. Earlier, the base address pointed to the end of the block's register space. The base address will now point to the start of the mdio's address space. The offsets have been fixed to match this. Signed-off-by: Arun Parameswaran Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli --- drivers/net/phy/mdio-mux-bcm-iproc.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/net/phy/mdio-mux-bcm-iproc.c b/drivers/net/phy/mdio-mux-bcm-iproc.c index 0831b71..48bb74a 100644 --- a/drivers/net/phy/mdio-mux-bcm-iproc.c +++ b/drivers/net/phy/mdio-mux-bcm-iproc.c @@ -22,7 +22,7 @@ #include #include -#define MDIO_PARAM_OFFSET 0x00 +#define MDIO_PARAM_OFFSET 0x23c #define MDIO_PARAM_MIIM_CYCLE 29 #define MDIO_PARAM_INTERNAL_SEL 25 #define MDIO_PARAM_BUS_ID 22 @@ -30,20 +30,22 @@ #define MDIO_PARAM_PHY_ID 16 #define MDIO_PARAM_PHY_DATA 0 -#define MDIO_READ_OFFSET 0x04 +#define MDIO_READ_OFFSET 0x240 #define MDIO_READ_DATA_MASK 0xffff -#define MDIO_ADDR_OFFSET 0x08 +#define MDIO_ADDR_OFFSET 0x244 -#define MDIO_CTRL_OFFSET 0x0C +#define MDIO_CTRL_OFFSET 0x248 #define MDIO_CTRL_WRITE_OP 0x1 #define MDIO_CTRL_READ_OP 0x2 -#define MDIO_STAT_OFFSET 0x10 +#define MDIO_STAT_OFFSET 0x24c #define MDIO_STAT_DONE 1 #define BUS_MAX_ADDR 32 #define EXT_BUS_START_ADDR 16 +#define MDIO_REG_ADDR_SPACE_SIZE 0x250 + struct iproc_mdiomux_desc { void *mux_handle; void __iomem *base; @@ -169,6 +171,14 @@ static int mdio_mux_iproc_probe(struct platform_device *pdev) md->dev = &pdev->dev; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (res->start & 0xfff) { + /* For backward compatibility in case the + * base address is specified with an offset. + */ + dev_info(&pdev->dev, "fix base address in dt-blob\n"); + res->start &= ~0xfff; + res->end = res->start + MDIO_REG_ADDR_SPACE_SIZE - 1; + } md->base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(md->base)) { dev_err(&pdev->dev, "failed to ioremap register\n"); -- 1.9.1