From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Tue, 16 Jul 2013 16:57:28 +0200 Subject: [U-Boot] [PATCH] fsl_esdhc: Touch only relevant sys ctrl bits In-Reply-To: <1373895870-29636-1-git-send-email-dirk.behme@de.bosch.com> References: <1373895870-29636-1-git-send-email-dirk.behme@de.bosch.com> Message-ID: <51E55F58.6090600@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 15/07/2013 15:44, Dirk Behme wrote: > Dealing with the sys ctrl register should touch only the > relevant bits and not accidently the whole register. On i.MX6, > the sys control register contains bits which shouldn't be reset to > 0, e.g. SYS_CTRL[3-0] and IPP_RST_N (SYS_CTRL[23]). > > Do this by read/modify/write instead of just a 32bit write. > > Signed-off-by: Dirk Behme > --- > drivers/mmc/fsl_esdhc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c > index 973b19f..431dac2 100644 > --- a/drivers/mmc/fsl_esdhc.c > +++ b/drivers/mmc/fsl_esdhc.c > @@ -470,7 +470,7 @@ static int esdhc_init(struct mmc *mmc) > int timeout = 1000; > > /* Reset the entire host controller */ > - esdhc_write32(®s->sysctl, SYSCTL_RSTA); > + esdhc_setbits32(®s->sysctl, SYSCTL_RSTA); > > /* Wait until the controller is available */ > while ((esdhc_read32(®s->sysctl) & SYSCTL_RSTA) && --timeout) > @@ -481,7 +481,7 @@ static int esdhc_init(struct mmc *mmc) > esdhc_write32(®s->scr, 0x00000040); > #endif > > - esdhc_write32(®s->sysctl, SYSCTL_HCKEN | SYSCTL_IPGEN); > + esdhc_setbits32(®s->sysctl, SYSCTL_HCKEN | SYSCTL_IPGEN); > > /* Set the initial clock speed */ > mmc_set_clock(mmc, 400000); > @@ -515,7 +515,7 @@ static void esdhc_reset(struct fsl_esdhc *regs) > unsigned long timeout = 100; /* wait max 100 ms */ > > /* reset the controller */ > - esdhc_write32(®s->sysctl, SYSCTL_RSTA); > + esdhc_setbits32(®s->sysctl, SYSCTL_RSTA); > > /* hardware clears the bit when it is done */ > while ((esdhc_read32(®s->sysctl) & SYSCTL_RSTA) && --timeout) > Acked-by: Stefano Babic Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================