From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kishon Vijay Abraham I Subject: Re: [v5 7/7] phy: phy_brcmstb_sata: add support MIPS-based platforms Date: Thu, 19 Nov 2015 19:19:27 +0530 Message-ID: <564DD367.4090603@ti.com> References: <1447900879-1549-1-git-send-email-jaedon.shin@gmail.com> <1447900879-1549-8-git-send-email-jaedon.shin@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Return-path: Received: from arroyo.ext.ti.com ([192.94.94.40]:57759 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933814AbbKSNtl (ORCPT ); Thu, 19 Nov 2015 08:49:41 -0500 In-Reply-To: <1447900879-1549-8-git-send-email-jaedon.shin@gmail.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Jaedon Shin , Tejun Heo , Rob Herring , Brian Norris , Florian Fainelli , linux-ide@vger.kernel.org Cc: Ralf Baechle , Dragan Stancevic Hi, On Thursday 19 November 2015 08:11 AM, Jaedon Shin wrote: > The BCM7xxx ARM-based and MIPS-based platforms share a similar hardware > block for AHCI SATA3. > > The BCM7425 is main chipset of MIPS-based 40nm class. The others have > same PHY of AHCI block. The compatible string may use > brcm,bcm7425-sata-phy. > > Signed-off-by: Jaedon Shin > Acked-by: Rob Herring > Tested-by: Florian Fainelli > Acked-by: Brian Norris > --- > .../bindings/phy/brcm,brcmstb-sata-phy.txt | 1 + > drivers/phy/Kconfig | 4 ++-- > drivers/phy/phy-brcmstb-sata.c | 24 ++++++++++++++++------ > 3 files changed, 21 insertions(+), 8 deletions(-) > > diff --git a/Documentation/devicetree/bindings/phy/brcm,brcmstb-sata-phy.txt b/Documentation/devicetree/bindings/phy/brcm,brcmstb-sata-phy.txt > index 7f81ef90146a..d87ab7c127b8 100644 > --- a/Documentation/devicetree/bindings/phy/brcm,brcmstb-sata-phy.txt > +++ b/Documentation/devicetree/bindings/phy/brcm,brcmstb-sata-phy.txt > @@ -2,6 +2,7 @@ > > Required properties: > - compatible: should be one or more of > + "brcm,bcm7425-sata-phy" > "brcm,bcm7445-sata-phy" > "brcm,phy-sata3" > - address-cells: should be 1 > diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig > index 7eb5859dd035..c6f4798ed3af 100644 > --- a/drivers/phy/Kconfig > +++ b/drivers/phy/Kconfig > @@ -373,11 +373,11 @@ config PHY_TUSB1210 > > config PHY_BRCMSTB_SATA > tristate "Broadcom STB SATA PHY driver" > - depends on ARCH_BRCMSTB > + depends on ARCH_BRCMSTB || BMIPS_GENERIC > depends on OF > select GENERIC_PHY > help > - Enable this to support the SATA3 PHY on 28nm Broadcom STB SoCs. > + Enable this to support the SATA3 PHY on 28nm or 40nm Broadcom STB SoCs. > Likely useful only with CONFIG_SATA_BRCMSTB enabled. > > config PHY_CYGNUS_PCIE > diff --git a/drivers/phy/phy-brcmstb-sata.c b/drivers/phy/phy-brcmstb-sata.c > index 5de394f589c8..c8243581f196 100644 > --- a/drivers/phy/phy-brcmstb-sata.c > +++ b/drivers/phy/phy-brcmstb-sata.c > @@ -32,8 +32,14 @@ > /* Register offset between PHYs in PCB space */ > #define SATA_MDIO_REG_28NM_SPACE_SIZE 0x1000 > > +/* The older SATA PHY registers duplicated per port registers within the map, > + * rather than having a separate map per port. > + */ > +#define SATA_MDIO_REG_40NM_SPACE_SIZE 0x10 > + > enum brcm_sata_phy_version { > BRCM_SATA_PHY_28NM, > + BRCM_SATA_PHY_40NM, > }; > > struct brcm_sata_port { > @@ -51,7 +57,7 @@ struct brcm_sata_phy { > struct brcm_sata_port phys[MAX_PORTS]; > }; > > -enum sata_mdio_phy_regs_28nm { > +enum sata_mdio_phy_regs { > PLL_REG_BANK_0 = 0x50, > PLL_REG_BANK_0_PLLCONTROL_0 = 0x81, > > @@ -69,10 +75,14 @@ enum sata_mdio_phy_regs_28nm { > static inline void __iomem *brcm_sata_phy_base(struct brcm_sata_port *port) > { > struct brcm_sata_phy *priv = port->phy_priv; > - u32 offset; > + u32 offset = 0; > > if (priv->version == BRCM_SATA_PHY_28NM) > offset = SATA_MDIO_REG_28NM_SPACE_SIZE; > + else if (priv->version == BRCM_SATA_PHY_40NM) > + offset = SATA_MDIO_REG_40NM_SPACE_SIZE; > + else > + dev_err(priv->dev, "should not happen\n"); "invalid phy version" here? Thanks Kishon