All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 06/25] dm: mmc: sunxi: Add ahb reset0 register write
Date: Mon, 16 Jul 2018 12:02:56 +0200	[thread overview]
Message-ID: <20180716100256.7vzeozwy6fe74sq7@flea.home> (raw)
In-Reply-To: <CAD6G_RSoQwWbLZMa8wD5_GGjyGvnZmL3NZxPiykk99W9HHZmyw@mail.gmail.com>

On Mon, Jul 16, 2018 at 03:25:08PM +0530, Jagan Teki wrote:
> On Mon, Jul 16, 2018 at 3:09 PM, Maxime Ripard
> <maxime.ripard@bootlin.com> wrote:
> > On Mon, Jul 16, 2018 at 01:49:37PM +0530, Jagan Teki wrote:
> >> AHB reset0 is needed for Allwinner start from sun6i, so
> >> add driver data configuration for ahb reset0 and update
> >> the register bits during probe.
> >>
> >> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> >> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> >> ---
> >>  drivers/mmc/sunxi_mmc.c | 36 +++++++++++++++++++++++++++++++++---
> >>  1 file changed, 33 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
> >> index 38171b81f3..beeded50af 100644
> >> --- a/drivers/mmc/sunxi_mmc.c
> >> +++ b/drivers/mmc/sunxi_mmc.c
> >> @@ -30,6 +30,7 @@ struct sunxi_mmc_priv {
> >>       unsigned fatal_err;
> >>       struct gpio_desc cd_gpio;       /* Change Detect GPIO */
> >>       int cd_inverted;                /* Inverted Card Detect */
> >> +     u32 *reg_reset0;
> >>       struct sunxi_mmc *reg;
> >>       struct mmc_config cfg;
> >>  };
> >> @@ -528,6 +529,14 @@ struct mmc *sunxi_mmc_init(int sdc_no)
> >>  }
> >>  #else
> >>
> >> +#define OFF_SUN6I_AHB_RESET0 0x2c0
> >> +
> >> +struct sunxi_mmc_config {
> >> +     bool has_reset0;
> >> +     u8 pos_reset0;
> >> +     u32 off_reset0;
> >> +};
> >> +
> >>  static int sunxi_mmc_set_ios(struct udevice *dev)
> >>  {
> >>       struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
> >> @@ -569,6 +578,7 @@ static int sunxi_mmc_probe(struct udevice *dev)
> >>       struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
> >>       struct sunxi_mmc_priv *priv = dev_get_priv(dev);
> >>       struct mmc_config *cfg = &plat->cfg;
> >> +     const struct sunxi_mmc_config *data;
> >>       struct sunxi_ccm_reg *ccm;
> >>       struct ofnode_phandle_args args;
> >>       int bus_width, ret;
> >> @@ -588,6 +598,7 @@ static int sunxi_mmc_probe(struct udevice *dev)
> >>       cfg->f_min = 400000;
> >>       cfg->f_max = 52000000;
> >>
> >> +     data = (struct sunxi_mmc_config *)dev_get_driver_data(dev);
> >>       priv->reg = (void *)dev_read_addr(dev);
> >>       priv->mmc_no = (((uintptr_t)priv->reg / 0x1000) - 0x1C0F);
> >>
> >> @@ -600,9 +611,15 @@ static int sunxi_mmc_probe(struct udevice *dev)
> >>       if (IS_ERR(ccm))
> >>               return PTR_ERR(ccm);
> >>
> >> +     priv->reg_reset0 = (void *)ccm + data->off_reset0;
> >> +
> >>       /* enable ahb gate */
> >>       setbits_le32(&ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_MMC(priv->mmc_no)));
> >>
> >> +     /* unassert reset */
> >> +     if (data->has_reset0)
> >> +             setbits_le32(priv->reg_reset0, BIT(data->pos_reset0 + priv->mmc_no));
> >> +
> >>       /* find clock reg */
> >>       switch (priv->mmc_no) {
> >>       case 0:
> >> @@ -653,10 +670,23 @@ static int sunxi_mmc_bind(struct udevice *dev)
> >>       return mmc_bind(dev, &plat->mmc, &plat->cfg);
> >>  }
> >>
> >> +static const struct sunxi_mmc_config sun4i_a10_cfg = {
> >> +     .has_reset0 = false,
> >> +};
> >> +
> >> +static const struct sunxi_mmc_config sun7i_a20_cfg = {
> >> +     .has_reset0 = true,
> >> +     .pos_reset0 = 8,
> >> +     .off_reset0 = OFF_SUN6I_AHB_RESET0,
> >> +};
> >
> > Nope. The A20 doesn't have any reset line.
> 
> Yes, I know. but sun6i-a31 has it and share same compatible
> allwinner,sun7i-a20-mmc ie reason I've attached driver data.

That doesn't make it more correct. The A20 doesn't have a reset line,
I don't see any good reason to imply this.

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180716/50871cd7/attachment.sig>

  reply	other threads:[~2018-07-16 10:02 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-16  8:19 [U-Boot] [PATCH 00/25] sunxi: Enable DM_MMC for U-Boot proper Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 01/25] ARM: dts: sun4i: Sync A10 MMC nodes from Linux Jagan Teki
2018-07-16  9:30   ` Maxime Ripard
2018-07-16 10:28     ` Jagan Teki
2018-07-16 13:37       ` Maxime Ripard
2018-07-16  8:19 ` [U-Boot] [PATCH 02/25] ARM: dts: sun4i: Sync A10 board dts mmc0 node " Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 03/25] ARM: dts: sun4i: Add mmc0 node for iNet 3F Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 04/25] ARM: dts: sun4i: Add mmc0 node for iNet 3W Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 05/25] dm: mmc: sunxi: Refactor ahb gate and clock setup Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 06/25] dm: mmc: sunxi: Add ahb reset0 register write Jagan Teki
2018-07-16  9:39   ` Maxime Ripard
2018-07-16  9:55     ` Jagan Teki
2018-07-16 10:02       ` Maxime Ripard [this message]
2018-07-16 10:39         ` Jagan Teki
2018-07-16 13:36           ` Maxime Ripard
2018-07-16  8:19 ` [U-Boot] [PATCH 07/25] ARM: dts: sun7i: Sync A20 MMC nodes from Linux Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 08/25] ARM: dts: sun7i: Add mmc0 node for Primo73 tablet Jagan Teki
2018-07-16  9:40   ` Maxime Ripard
2018-07-16 10:03     ` Jagan Teki
2018-07-16 10:09       ` Chen-Yu Tsai
2018-07-16  8:19 ` [U-Boot] [PATCH 09/25] ARM: dts: sun7i: Add mmc0 node for Ainol AW1 Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 10/25] ARM: dts: sun7i: Add mmc0 node for Mele M5 Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 11/25] ARM: dts: sun7i: Add mmc0 node for Toptech BD1078 Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 12/25] sunxi: A20: Enable DM_MMC Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 13/25] mmc: sunxi: Add mmc, emmc H5/A64 compatible Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 14/25] sunxi: H3_H5: Enable DM_MMC Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 15/25] sunxi: A64: " Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 16/25] ARM: dts: sun8i: Update A83T dts(i) files from Linux Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 17/25] mmc: sunxi: Add A83T emmc compatible Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 18/25] sunxi: A83T: Enable DM_MMC Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 19/25] ARM: dts: sun8i: Update R40 dts(i) files from Linux Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 20/25] sunxi: V40: Enable DM_MMC Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 21/25] fastboot: sunxi: Update fastboot mmc default device Jagan Teki
2018-07-16  9:46   ` Maxime Ripard
2018-07-16 10:12     ` Jagan Teki
2018-07-16 11:11       ` Alex Kiernan
2018-07-17 11:57         ` Maxime Ripard
2018-07-18 19:15           ` Alex Kiernan
2018-07-19 13:26             ` Maxime Ripard
2018-07-19 18:11               ` Jagan Teki
2018-07-20  7:39                 ` Maxime Ripard
2018-07-19 18:43               ` Alex Kiernan
2018-07-20  7:34                 ` Maxime Ripard
2018-07-17 11:56       ` Maxime Ripard
2018-07-16  8:19 ` [U-Boot] [PATCH 22/25] env: sunxi: Update default env fat device Jagan Teki
2018-07-16  9:47   ` Maxime Ripard
2018-07-16 10:16     ` Jagan Teki
2018-07-17 11:54       ` Maxime Ripard
2018-07-19 18:21         ` Jagan Teki
2018-07-16  8:19 ` [U-Boot] [PATCH 23/25] sunxi: Use mmc_bootdev=2 for MMC2 boot Jagan Teki
2018-07-16  9:48   ` Maxime Ripard
2018-07-16 10:21     ` Jagan Teki
2018-07-17 11:55       ` Maxime Ripard
2018-07-16  8:19 ` [U-Boot] [DO NOT MERGE PATCH 24/25] sunxi: A13/A31: Enable DM_MMC Jagan Teki
2018-07-16  8:19 ` [U-Boot] [DO NOT MERGE PATCH 25/25] sunxi: A23/A33/V3S: " Jagan Teki
2018-07-16  8:35 ` [U-Boot] [PATCH 00/25] sunxi: Enable DM_MMC for U-Boot proper Chen-Yu Tsai
2018-07-16  9:52   ` Maxime Ripard
2018-07-16 11:08     ` Andre Przywara
2018-07-16 11:42       ` Jagan Teki

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=20180716100256.7vzeozwy6fe74sq7@flea.home \
    --to=maxime.ripard@bootlin.com \
    --cc=u-boot@lists.denx.de \
    /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.