Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1277251imm; Fri, 27 Jul 2018 14:24:45 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfRTL5PP48nSZWa4ibg1fImdBjTMdU56/bOrKKCp6ex9RqODr1K+OyMZrQosCrSxYFQKwP4 X-Received: by 2002:a63:8449:: with SMTP id k70-v6mr7533587pgd.309.1532726685242; Fri, 27 Jul 2018 14:24:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532726685; cv=none; d=google.com; s=arc-20160816; b=R//EfgclWWoLbeLc4VYmjUJ1bnXHewF/hC+s4erUvZHt0B901wnpl8/HItpur0HepU AUqQ3/cxFuKTPxhIt9YdE6umFjFHqJOX7q4CcTwfU0LVwg0Pgcj8Z//A5QUYN5l8HEvl gXOZLFuOVKIJWDZMgvMjXl0B/jlDGt8MWjzpFI1bH5/gmsLgONmEsJj9axI1AZeZcPgv LoVFru2BgT4RGfta0Wj+xrwPXjFkni1zfIcvQu5wl22bpFl3e2YSIymdoW+hX3frI3/M sLCn0BB3ULBDlidVlYP/ub2hveXcshPYJUoTMqOwz+wALWKuQSuQgib3VBUUgFQBhuaY J6qg== 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=fPy8zPe6vPwzlEfwZqSfCetRsqsUUmfFrykow6BYHEI=; b=xe6b5GLlZQzg6xj7eRul4dq6DxbIc1WTpQ8L0hV/FQAFvulM3Xq8pNTPMyBG9SJOLd WUKVGvh4ZeG55t1WACo1rGTbp6aVfblvWJLBnEDL5KCWuBPlaOnHSX8FWAJXgj5OKMDI mkfCDp9vAWuDY/mdKH2lEuJuyrbvRTRmwwJ02g18Y6uEK3ERZ9L5XQGjFdQDm/VAbgEb WH07SC2UtKwzDNzigg6WuX1FcC0w1yVeuV5C3VlhquaIkGbGMMtbzXpDQqP6EfH0CFS/ b+woRRDj5uGAaTP6qQoI92mahr6ntNea2BwEoj7Fkl/hc0Big6p9wmrSX9YdoVHX6Eve vOUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=gXoZFa7q; 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 17-v6si3985841pgp.289.2018.07.27.14.24.30; Fri, 27 Jul 2018 14:24:45 -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=gXoZFa7q; 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 S2389883AbeG0WrS (ORCPT + 99 others); Fri, 27 Jul 2018 18:47:18 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:45534 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389863AbeG0WrR (ORCPT ); Fri, 27 Jul 2018 18:47:17 -0400 Received: by mail-qk0-f195.google.com with SMTP id c192-v6so4223416qkg.12 for ; Fri, 27 Jul 2018 14:23:34 -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=fPy8zPe6vPwzlEfwZqSfCetRsqsUUmfFrykow6BYHEI=; b=gXoZFa7q++vuUQsgIhl7QzDxj6Ewj4MMz5xAvSRPv2XQ6HaDHcLtwM7z4CcKbavpR9 Ra8YRK8xVpDopM8ckq5nahnfUo9mE+Q9GI8UitiNOaa4UIlw/0y5LB/Q9+E8Iy5L6IZ6 rSNAvCrOkno/dYNCoXjvGeF6hYLsrNsA8i/YU= 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=fPy8zPe6vPwzlEfwZqSfCetRsqsUUmfFrykow6BYHEI=; b=HOLK4t71A68cwm527s2uelv4V194bu3pr5usqUDc9hEioTTQEtyBUTT1GLVKOgItKO DhvJCOSADafyhq/JG8MOZJbSyKZWXUfKvHk7nnDMbpwf4IWJLfVWVAkWTQhbm73XBgjW E9RfZbRLHXtDm1Vl/nhv8U8z+uFKb/b0Ct0qynNfxAWpbTvJwo2Kgw91OMhAAQnZjYy1 G5AV7IXGCXu1epGpLsdh2oKPxRylrzi+pR47UEbC7jAUUCoK0jzZM3TloF0TMzcu5Rho IF27obc6WXbCsdjtyqaUQKPnJcUuIEdxNTYeeXCo8kDAkYK6M6AFKdq8/p7LZAUSiD8b 417g== X-Gm-Message-State: AOUpUlEKgkkb2SZhiNziqmdyf1zG8F67Vho0ysdnd2d91/Kgk19MW5mL cZSNMwuYX3BLKIa1RT5NEeMaLQ== X-Received: by 2002:a37:d401:: with SMTP id l1-v6mr7312531qki.221.1532726613522; Fri, 27 Jul 2018 14:23:33 -0700 (PDT) Received: from lbrmn-lnxub86.ric.broadcom.com ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id e21-v6sm3416622qtc.67.2018.07.27.14.23.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 Jul 2018 14:23:33 -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 v2 4/7] net: phy: Disable external master access in bcm mdio mux driver Date: Fri, 27 Jul 2018 14:23:30 -0700 Message-Id: <1532726613-6483-5-git-send-email-arun.parameswaran@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1532726613-6483-1-git-send-email-arun.parameswaran@broadcom.com> References: <1532726613-6483-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 --- 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