powerpc: Add support for PORTA and PORTB odr registers
PATCH RESEND 4/4 powerpc: Add support for PORTA and PORTB odr registers
PORTA and PORTB have odr registers, as well. However, the PORTB odr register is only 16bit.
Signed-off-by Jochen Friedrich <[email protected]>
Acked-by Scott Wood <[email protected]>
--- arch/powerpc/sysdev/commproc.c | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-)
arch/powerpc/sysdev/commproc.c +16 -3
@@ -411,7 +411,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 ]; };
@@ -441,6 +441,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);
@@ -474,11 +481,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); } }
Signature · 1 line
1.5.3.4
Vitaly Bordug
AppliedQuoted 5 lines · On Thu, 22 Nov 2007 17:54:13 +0100 Jochen Friedrich wrote:
PORTA and PORTB have odr registers, as well. However, the PORTB odr register is only 16bit.
Signed-off-by Jochen Friedrich <[email protected]>Acked-by Scott Wood <[email protected]>
Applied to linux-2.6-8xx.git, for-paulus branch
Signature · 1 line
Sincerely, Vitaly