From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/5] phy: berlin-sata: Move PHY_BASE into private data struct
Date: Tue, 21 Oct 2014 15:03:25 +0530 [thread overview]
Message-ID: <54462865.6000205@ti.com> (raw)
In-Reply-To: <1413882477-27922-2-git-send-email-sebastian.hesselbarth@gmail.com>
On Tuesday 21 October 2014 02:37 PM, Sebastian Hesselbarth wrote:
> Currently, Berlin SATA PHY driver assumes PHY_BASE address being
> constant. While this PHY_BASE is correct for BG2Q, older BG2 PHY_BASE
> is different. Prepare the driver for BG2 support by moving the phy_base
> into private driver data.
>
> Acked-by: Antoine T?nart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
> Cc: Kishon Vijay Abraham I <kishon@ti.com>
> Cc: "Antoine T?nart" <antoine.tenart@free-electrons.com>
> Cc: devicetree at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> ---
> drivers/phy/phy-berlin-sata.c | 42 ++++++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/phy/phy-berlin-sata.c b/drivers/phy/phy-berlin-sata.c
> index 69ced52d72aa..9682b0f66177 100644
> --- a/drivers/phy/phy-berlin-sata.c
> +++ b/drivers/phy/phy-berlin-sata.c
> @@ -30,7 +30,7 @@
> #define MBUS_WRITE_REQUEST_SIZE_128 (BIT(2) << 16)
> #define MBUS_READ_REQUEST_SIZE_128 (BIT(2) << 19)
>
> -#define PHY_BASE 0x200
> +#define BG2Q_PHY_BASE 0x200
>
> /* register 0x01 */
> #define REF_FREF_SEL_25 BIT(0)
> @@ -61,15 +61,16 @@ struct phy_berlin_priv {
> struct clk *clk;
> struct phy_berlin_desc **phys;
> unsigned nphys;
> + u32 phy_base;
> };
>
> -static inline void phy_berlin_sata_reg_setbits(void __iomem *ctrl_reg, u32 reg,
> - u32 mask, u32 val)
> +static inline void phy_berlin_sata_reg_setbits(void __iomem *ctrl_reg,
> + u32 phy_base, u32 reg, u32 mask, u32 val)
> {
> u32 regval;
>
> /* select register */
> - writel(PHY_BASE + reg, ctrl_reg + PORT_VSR_ADDR);
> + writel(phy_base + reg, ctrl_reg + PORT_VSR_ADDR);
>
> /* set bits */
> regval = readl(ctrl_reg + PORT_VSR_DATA);
> @@ -103,17 +104,20 @@ static int phy_berlin_sata_power_on(struct phy *phy)
> writel(regval, priv->base + HOST_VSA_DATA);
>
> /* set PHY mode and ref freq to 25 MHz */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x1, 0xff,
> - REF_FREF_SEL_25 | PHY_MODE_SATA);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x01,
> + 0x00ff, REF_FREF_SEL_25 | PHY_MODE_SATA);
>
> /* set PHY up to 6 Gbps */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x25, 0xc00, PHY_GEN_MAX_6_0);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x25,
> + 0x0c00, PHY_GEN_MAX_6_0);
>
> /* set 40 bits width */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x23, 0xc00, DATA_BIT_WIDTH_40);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x23,
> + 0x0c00, DATA_BIT_WIDTH_40);
>
> /* use max pll rate */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x2, 0x0, USE_MAX_PLL_RATE);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x02,
> + 0x0000, USE_MAX_PLL_RATE);
>
> /* set Gen3 controller speed */
> regval = readl(ctrl_reg + PORT_SCR_CTL);
> @@ -182,9 +186,22 @@ static u32 phy_berlin_power_down_bits[] = {
> POWER_DOWN_PHY1,
> };
>
> +static u32 bg2q_sata_phy_base = BG2Q_PHY_BASE;
> +
> +static const struct of_device_id phy_berlin_sata_of_match[] = {
> + {
> + .compatible = "marvell,berlin2q-sata-phy",
> + .data = &bg2q_sata_phy_base,
Can't the base directly come from dt?
Thanks
Kishon
WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: "Antoine Ténart" <antoine.tenart@free-electrons.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/5] phy: berlin-sata: Move PHY_BASE into private data struct
Date: Tue, 21 Oct 2014 15:03:25 +0530 [thread overview]
Message-ID: <54462865.6000205@ti.com> (raw)
In-Reply-To: <1413882477-27922-2-git-send-email-sebastian.hesselbarth@gmail.com>
On Tuesday 21 October 2014 02:37 PM, Sebastian Hesselbarth wrote:
> Currently, Berlin SATA PHY driver assumes PHY_BASE address being
> constant. While this PHY_BASE is correct for BG2Q, older BG2 PHY_BASE
> is different. Prepare the driver for BG2 support by moving the phy_base
> into private driver data.
>
> Acked-by: Antoine Ténart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
> Cc: Kishon Vijay Abraham I <kishon@ti.com>
> Cc: "Antoine Ténart" <antoine.tenart@free-electrons.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> ---
> drivers/phy/phy-berlin-sata.c | 42 ++++++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/phy/phy-berlin-sata.c b/drivers/phy/phy-berlin-sata.c
> index 69ced52d72aa..9682b0f66177 100644
> --- a/drivers/phy/phy-berlin-sata.c
> +++ b/drivers/phy/phy-berlin-sata.c
> @@ -30,7 +30,7 @@
> #define MBUS_WRITE_REQUEST_SIZE_128 (BIT(2) << 16)
> #define MBUS_READ_REQUEST_SIZE_128 (BIT(2) << 19)
>
> -#define PHY_BASE 0x200
> +#define BG2Q_PHY_BASE 0x200
>
> /* register 0x01 */
> #define REF_FREF_SEL_25 BIT(0)
> @@ -61,15 +61,16 @@ struct phy_berlin_priv {
> struct clk *clk;
> struct phy_berlin_desc **phys;
> unsigned nphys;
> + u32 phy_base;
> };
>
> -static inline void phy_berlin_sata_reg_setbits(void __iomem *ctrl_reg, u32 reg,
> - u32 mask, u32 val)
> +static inline void phy_berlin_sata_reg_setbits(void __iomem *ctrl_reg,
> + u32 phy_base, u32 reg, u32 mask, u32 val)
> {
> u32 regval;
>
> /* select register */
> - writel(PHY_BASE + reg, ctrl_reg + PORT_VSR_ADDR);
> + writel(phy_base + reg, ctrl_reg + PORT_VSR_ADDR);
>
> /* set bits */
> regval = readl(ctrl_reg + PORT_VSR_DATA);
> @@ -103,17 +104,20 @@ static int phy_berlin_sata_power_on(struct phy *phy)
> writel(regval, priv->base + HOST_VSA_DATA);
>
> /* set PHY mode and ref freq to 25 MHz */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x1, 0xff,
> - REF_FREF_SEL_25 | PHY_MODE_SATA);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x01,
> + 0x00ff, REF_FREF_SEL_25 | PHY_MODE_SATA);
>
> /* set PHY up to 6 Gbps */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x25, 0xc00, PHY_GEN_MAX_6_0);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x25,
> + 0x0c00, PHY_GEN_MAX_6_0);
>
> /* set 40 bits width */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x23, 0xc00, DATA_BIT_WIDTH_40);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x23,
> + 0x0c00, DATA_BIT_WIDTH_40);
>
> /* use max pll rate */
> - phy_berlin_sata_reg_setbits(ctrl_reg, 0x2, 0x0, USE_MAX_PLL_RATE);
> + phy_berlin_sata_reg_setbits(ctrl_reg, priv->phy_base, 0x02,
> + 0x0000, USE_MAX_PLL_RATE);
>
> /* set Gen3 controller speed */
> regval = readl(ctrl_reg + PORT_SCR_CTL);
> @@ -182,9 +186,22 @@ static u32 phy_berlin_power_down_bits[] = {
> POWER_DOWN_PHY1,
> };
>
> +static u32 bg2q_sata_phy_base = BG2Q_PHY_BASE;
> +
> +static const struct of_device_id phy_berlin_sata_of_match[] = {
> + {
> + .compatible = "marvell,berlin2q-sata-phy",
> + .data = &bg2q_sata_phy_base,
Can't the base directly come from dt?
Thanks
Kishon
next prev parent reply other threads:[~2014-10-21 9:33 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-21 9:07 [PATCH v2 0/5] Berlin BG2 AHCI and SATA PHY Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` [PATCH v2 1/5] phy: berlin-sata: Move PHY_BASE into private data struct Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:33 ` Kishon Vijay Abraham I [this message]
2014-10-21 9:33 ` Kishon Vijay Abraham I
2014-10-21 9:40 ` Sebastian Hesselbarth
2014-10-21 9:40 ` Sebastian Hesselbarth
2014-10-21 9:40 ` Sebastian Hesselbarth
2014-10-24 20:14 ` Sebastian Hesselbarth
2014-10-24 20:14 ` Sebastian Hesselbarth
2014-10-24 20:14 ` Sebastian Hesselbarth
2014-10-24 20:25 ` Felipe Balbi
2014-10-24 20:25 ` Felipe Balbi
2014-10-24 20:35 ` Sebastian Hesselbarth
2014-10-24 20:35 ` Sebastian Hesselbarth
2014-10-27 12:27 ` Kishon Vijay Abraham I
2014-10-27 12:27 ` Kishon Vijay Abraham I
2014-10-27 12:27 ` Kishon Vijay Abraham I
2014-10-27 18:32 ` Sebastian Hesselbarth
2014-10-27 18:32 ` Sebastian Hesselbarth
2014-10-30 5:27 ` Kishon Vijay Abraham I
2014-10-30 5:27 ` Kishon Vijay Abraham I
2014-10-30 5:27 ` Kishon Vijay Abraham I
2014-10-21 9:07 ` [PATCH v2 2/5] phy: berlin-sata: Add support for BG2 SATA PHY Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` [PATCH v2 3/5] phy: berlin-sata: Document BG2 compatible Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` [PATCH v2 4/5] ARM: berlin: Add AHCI and SATA PHY nodes to BG2 Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` [PATCH v2 5/5] ARM: berlin: Enable SATA on Sony NSZ-GS7 Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-21 9:07 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 0/5] Berlin BG2 AHCI and SATA PHY Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 1/5] phy: berlin-sata: Move PHY_BASE into private data struct Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 2/5] phy: berlin-sata: Add support for BG2 SATA PHY Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 3/5] phy: berlin-sata: Document BG2 compatible Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 4/5] ARM: berlin: Add AHCI and SATA PHY nodes to BG2 Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-11-11 23:23 ` Sebastian Hesselbarth
2014-11-11 23:23 ` Sebastian Hesselbarth
2014-11-11 23:23 ` Sebastian Hesselbarth
2014-10-30 10:21 ` [PATCH v3 5/5] ARM: berlin: Enable SATA on Sony NSZ-GS7 Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
2014-10-30 10:21 ` Sebastian Hesselbarth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54462865.6000205@ti.com \
--to=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.