Skip to content

Commit

Permalink
[POWERPC] Add support for PORTA and PORTB odr registers
Browse files Browse the repository at this point in the history
PORTA and PORTB have odr registers, as well. However, the PORTB odr
register is only 16bit.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
  • Loading branch information
Jochen Friedrich authored and Kumar Gala committed Dec 14, 2007
1 parent 0b5cf10 commit 721c0c8
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions arch/powerpc/sysdev/commproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ EXPORT_SYMBOL(cpm_dpram_phys);
#endif /* !CONFIG_PPC_CPM_NEW_BINDING */

struct cpm_ioport16 {
__be16 dir, par, sor, dat, intr;
__be16 dir, par, odr_sor, dat, intr;
__be16 res[3];
};

Expand Down Expand Up @@ -438,6 +438,13 @@ static void cpm1_set_pin32(int port, int pin, int flags)
else
clrbits32(&iop->par, pin);

if (port == CPM_PORTB) {
if (flags & CPM_PIN_OPENDRAIN)
setbits16(&mpc8xx_immr->im_cpm.cp_pbodr, pin);
else
clrbits16(&mpc8xx_immr->im_cpm.cp_pbodr, pin);
}

if (port == CPM_PORTE) {
if (flags & CPM_PIN_SECONDARY)
setbits32(&iop->sor, pin);
Expand Down Expand Up @@ -471,11 +478,17 @@ static void cpm1_set_pin16(int port, int pin, int flags)
else
clrbits16(&iop->par, pin);

if (port == CPM_PORTA) {
if (flags & CPM_PIN_OPENDRAIN)
setbits16(&iop->odr_sor, pin);
else
clrbits16(&iop->odr_sor, pin);
}
if (port == CPM_PORTC) {
if (flags & CPM_PIN_SECONDARY)
setbits16(&iop->sor, pin);
setbits16(&iop->odr_sor, pin);
else
clrbits16(&iop->sor, pin);
clrbits16(&iop->odr_sor, pin);
}
}

Expand Down

0 comments on commit 721c0c8

Please sign in to comment.