From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 16 Nov 2015 11:06:53 +0100 Subject: [U-Boot] [PATCH 03/17] powerpc/82xx: make set/get_pin for km82xx more flexible In-Reply-To: <1447426768-23226-4-git-send-email-valentin.longchamp@keymile.com> References: <1447426768-23226-1-git-send-email-valentin.longchamp@keymile.com> <1447426768-23226-4-git-send-email-valentin.longchamp@keymile.com> Message-ID: <5649AABD.3040408@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 Hello Valentin, Am 13.11.2015 um 15:59 schrieb Valentin Longchamp: > From: Holger Brunck > > The get_pin and set_pin funciton was only used for pins on Port D and > therefore the value was hard coded in the function. Enhance this with a > parameter, that we are able to use this functions for other ports too. > > Signed-off-by: Holger Brunck > Signed-off-by: Valentin Longchamp > --- > > board/keymile/km82xx/km82xx.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) nitpick ... it would be good to add gpio support for this ... beside of that: Reviewed-by: Heiko Schocher bye, Heiko > > diff --git a/board/keymile/km82xx/km82xx.c b/board/keymile/km82xx/km82xx.c > index c599b40..03cd10c 100644 > --- a/board/keymile/km82xx/km82xx.c > +++ b/board/keymile/km82xx/km82xx.c > @@ -343,7 +343,7 @@ int last_stage_init(void) > } > > #ifdef CONFIG_MGCOGE3NE > -static void set_pin(int state, unsigned long mask); > +static void set_pin(int state, unsigned long mask, int port); > > /* > * For mgcoge3ne boards, the mgcoge3un control is controlled from > @@ -357,11 +357,11 @@ static void handle_mgcoge3un_reset(void) > if (bobcatreset) { > if (strcmp(bobcatreset, "true") == 0) { > puts("Forcing bobcat reset\n"); > - set_pin(0, 0x00000004); /* clear PD29 to reset arm */ > + set_pin(0, 0x00000004, 3); /* clear PD29 (reset arm) */ > udelay(1000); > - set_pin(1, 0x00000004); > + set_pin(1, 0x00000004, 3); > } else > - set_pin(1, 0x00000004); /* set PD29 to not reset arm */ > + set_pin(1, 0x00000004, 3); /* don't reset arm */ > } > } > #endif > @@ -410,9 +410,9 @@ int hush_init_var(void) > #define SDA_MASK 0x00010000 > #define SCL_MASK 0x00020000 > > -static void set_pin(int state, unsigned long mask) > +static void set_pin(int state, unsigned long mask, int port) > { > - ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3); > + ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port); > > if (state) > setbits_be32(&iop->pdat, mask); > @@ -422,9 +422,9 @@ static void set_pin(int state, unsigned long mask) > setbits_be32(&iop->pdir, mask); > } > > -static int get_pin(unsigned long mask) > +static int get_pin(unsigned long mask, int port) > { > - ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, 3); > + ioport_t *iop = ioport_addr((immap_t *)CONFIG_SYS_IMMR, port); > > clrbits_be32(&iop->pdir, mask); > return 0 != (in_be32(&iop->pdat) & mask); > @@ -432,22 +432,22 @@ static int get_pin(unsigned long mask) > > void set_sda(int state) > { > - set_pin(state, SDA_MASK); > + set_pin(state, SDA_MASK, 3); > } > > void set_scl(int state) > { > - set_pin(state, SCL_MASK); > + set_pin(state, SCL_MASK, 3); > } > > int get_sda(void) > { > - return get_pin(SDA_MASK); > + return get_pin(SDA_MASK, 3); > } > > int get_scl(void) > { > - return get_pin(SCL_MASK); > + return get_pin(SCL_MASK, 3); > } > > #if defined(CONFIG_HARD_I2C) > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany