Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1145774imm; Wed, 1 Aug 2018 10:57:27 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfBQ3u6e81UqRQOT908HM5jUS0V3bImGzwiQbF6SfIcm3HDL9/sQdtrMAF8ndEXCmaOs+aG X-Received: by 2002:a63:fd52:: with SMTP id m18-v6mr20780139pgj.304.1533146247528; Wed, 01 Aug 2018 10:57:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533146247; cv=none; d=google.com; s=arc-20160816; b=F63Jvj2RELgzj3Cpuvq+4T1QV/7NJ1TscgjUkecCHvSE444PVOr6wEWYAyebqTkk2k a4Vx2EGyUBVSUeDUQ7vt9MlKK4a4mWmPQMtR0bNR4Y1xmOgaIVk13Gy5PvUS5g5UUmr8 5B7CnoEP75BnBjHYXaF7EHOvdgoh14qBIVtiZhq51a0wwZWxSMF9RUnqt6TZZjjX9YLG u2ioXVmqaeuyDs3Shgn8Q0tiAAGpvipEZQtaBHiu9a8ASNUCrn3j+HeHxZRiaxvQpiAY FGHuHpUZwUQklGOK2PYTW0PoTJ+F1N3jhfUFoWyw1nLTxYuHeEG3JWUOb2LURkoIBJzp RF+g== 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=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=ORUC2KBY4fodJX21dDiCghkaWdKqfiqanVw+w2bUkiDDJ9UYqHjUOvJvqo1dtNpdg7 mHrbdBpit2zY9jswmFZYAWcuW/qr60EmasM0InofsF7Y1W3Caw+QCBxt+XCQGSX98vEp H4rXqmkJRIicHcpdHikrASRSEnS8osHl0DgrYhPh/99dgs4kmfBPs1AFH3DfX/ma7ZNp p2dih3WAVWKVvn5y2/Iyi6q0JNgg3RTiHqH3EAgkuie8d2kyFkgY90AUBPMkMUgjC9Dr 5qXX68xuL2NQT17oQ5i+wpowQkd7EPV4n38/j8/yqSSH6VqQPHher/lcMBs5EaM343q6 ICuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=IkrcMBqX; 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 d1-v6si17592796pfk.166.2018.08.01.10.57.12; Wed, 01 Aug 2018 10:57:27 -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=IkrcMBqX; 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 S1732364AbeHATnS (ORCPT + 99 others); Wed, 1 Aug 2018 15:43:18 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:38325 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729008AbeHATnR (ORCPT ); Wed, 1 Aug 2018 15:43:17 -0400 Received: by mail-qt0-f193.google.com with SMTP id y19-v6so20884567qto.5 for ; Wed, 01 Aug 2018 10:56:25 -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=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=IkrcMBqXejJbjiM9esDZ0KrloX+mFKyLKzB9nhDcjUYPH1D6er4lezIalmpfbsVeMX Ae7xzxcOPMbm4t9dOGA9jB2B8DcxW+yPutDonqgEMqZibeiAOOv8aE9Ek7HL8BEstxUR tfHQHydIgUSEQcplQwUvBZuYDChkAWLorSPxo= 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=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=lqRyyh2ppsAei+btS7LrSZoELTNvS1IRlUCI2mWkudJSqohh4ETPnB1UnWMnByxC3j 3XZULNTDx32PDLFNci3hFQZZz5aMzZSuu1nWTRJ5T2+f4zXOoZat0rzkp8j4IyopJhZ+ kYA9PddQb+5qV9S/h9i2MfvCDPh1DzgRgHrcGiwhMdSWoVrFp7RmG55ZQ/K0CraHEruh FGwABwlqyouA+ZKp9NlJTkeum5uxlH/iHiI3MIj1h0CXwERnh9au2W19A+/8su/1JPnU hgVbZt0fXgWf0bxiWCKpOrK9mm57/iFBznzskFfdfIpFeq/nynjDLrJ7r3KQXOXeKmv2 /oQQ== X-Gm-Message-State: AOUpUlF3AV1lyicKmrFRn8EhL+QO+KzVD//RcNcyF5M3+Y/PlbMqSNt1 sRRnNOM9rlWz6R/sOCGmA/A/ag== X-Received: by 2002:ac8:3473:: with SMTP id v48-v6mr25139566qtb.400.1533146184959; Wed, 01 Aug 2018 10:56:24 -0700 (PDT) Received: from lbrmn-lnxub86.ric.broadcom.com ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id m12-v6sm14401729qkl.54.2018.08.01.10.56.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 01 Aug 2018 10:56:24 -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 v3 4/8] net: phy: Disable external master access in bcm mdio mux driver Date: Wed, 1 Aug 2018 10:56:22 -0700 Message-Id: <1533146186-8374-5-git-send-email-arun.parameswaran@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533146186-8374-1-git-send-email-arun.parameswaran@broadcom.com> References: <1533146186-8374-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 Configure the scan control register in the Broadcom iProc mdio mux driver to disable access to external master. In some SoC's, the scan control register defaults to an incorrect value. Signed-off-by: Arun Parameswaran Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli --- drivers/net/phy/mdio-mux-bcm-iproc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/phy/mdio-mux-bcm-iproc.c b/drivers/net/phy/mdio-mux-bcm-iproc.c index 48bb74a..c36ce4b 100644 --- a/drivers/net/phy/mdio-mux-bcm-iproc.c +++ b/drivers/net/phy/mdio-mux-bcm-iproc.c @@ -22,6 +22,9 @@ #include #include +#define MDIO_SCAN_CTRL_OFFSET 0x008 +#define MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR 28 + #define MDIO_PARAM_OFFSET 0x23c #define MDIO_PARAM_MIIM_CYCLE 29 #define MDIO_PARAM_INTERNAL_SEL 25 @@ -53,6 +56,16 @@ struct iproc_mdiomux_desc { struct mii_bus *mii_bus; }; +static void mdio_mux_iproc_config(struct iproc_mdiomux_desc *md) +{ + u32 val; + + /* Disable external mdio master access */ + val = readl(md->base + MDIO_SCAN_CTRL_OFFSET); + val |= BIT(MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR); + writel(val, md->base + MDIO_SCAN_CTRL_OFFSET); +} + static int iproc_mdio_wait_for_idle(void __iomem *base, bool result) { unsigned int timeout = 1000; /* loop for 1s */ @@ -216,6 +229,8 @@ static int mdio_mux_iproc_probe(struct platform_device *pdev) goto out_register; } + mdio_mux_iproc_config(md); + dev_info(md->dev, "iProc mdiomux registered\n"); return 0; -- 1.9.1