From 84f7f03032f83e1e956a809f920ffb1e71866710 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 20 Jun 2013 18:00:56 -0600 Subject: KL25Z GPIO register dump function now compiles --- nuttx/ChangeLog | 2 + nuttx/arch/arm/src/kl/chip/kl_gpio.h | 96 ++++++++++++++++++------------------ nuttx/arch/arm/src/kl/kl_dumpgpio.c | 22 +++------ 3 files changed, 58 insertions(+), 62 deletions(-) diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 402f80a29..e09d98bda 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -5018,3 +5018,5 @@ * configs/freedom-lk25z/src/kl_spi.c: Add the framework for controlling SPI-related discrete inputs and outputs. Taken from work by Alan Carvalho de Assis (2013-6-20). + * arch/arm/src/kl/kl_dumpgpio.c: Now compiles (2013-6-20). + diff --git a/nuttx/arch/arm/src/kl/chip/kl_gpio.h b/nuttx/arch/arm/src/kl/chip/kl_gpio.h index 997e1d1ce..142570ace 100644 --- a/nuttx/arch/arm/src/kl/chip/kl_gpio.h +++ b/nuttx/arch/arm/src/kl/chip/kl_gpio.h @@ -46,58 +46,60 @@ * Pre-processorDefinitions ************************************************************************************/ +#define KL_GPIO_NPORTS 5 + /* Register Offsets *****************************************************************/ -#define KL_GPIO_PDOR_OFFSET 0x0000 /* Port Data Output Register */ -#define KL_GPIO_PSOR_OFFSET 0x0004 /* Port Set Output Register */ -#define KL_GPIO_PCOR_OFFSET 0x0008 /* Port Clear Output Register */ -#define KL_GPIO_PTOR_OFFSET 0x000c /* Port Toggle Output Register */ -#define KL_GPIO_PDIR_OFFSET 0x0010 /* Port Data Input Register */ -#define KL_GPIO_PDDR_OFFSET 0x0014 /* Port Data Direction Register */ +#define KL_GPIO_PDOR_OFFSET 0x0000 /* Port Data Output Register */ +#define KL_GPIO_PSOR_OFFSET 0x0004 /* Port Set Output Register */ +#define KL_GPIO_PCOR_OFFSET 0x0008 /* Port Clear Output Register */ +#define KL_GPIO_PTOR_OFFSET 0x000c /* Port Toggle Output Register */ +#define KL_GPIO_PDIR_OFFSET 0x0010 /* Port Data Input Register */ +#define KL_GPIO_PDDR_OFFSET 0x0014 /* Port Data Direction Register */ /* Register Addresses ***************************************************************/ -#define KL_GPIO_PDOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDOR_OFFSET) -#define KL_GPIO_PSOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PSOR_OFFSET) -#define KL_GPIO_PCOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PCOR_OFFSET) -#define KL_GPIO_PTOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PTOR_OFFSET) -#define KL_GPIO_PDIR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDIR_OFFSET) -#define KL_GPIO_PDDR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDDR_OFFSET) - -#define KL_GPIOA_PDOR (KL_GPIOA_BASE+KL_GPIO_PDOR_OFFSET) -#define KL_GPIOA_PSOR (KL_GPIOA_BASE+KL_GPIO_PSOR_OFFSET) -#define KL_GPIOA_PCOR (KL_GPIOA_BASE+KL_GPIO_PCOR_OFFSET) -#define KL_GPIOA_PTOR (KL_GPIOA_BASE+KL_GPIO_PTOR_OFFSET) -#define KL_GPIOA_PDIR (KL_GPIOA_BASE+KL_GPIO_PDIR_OFFSET) -#define KL_GPIOA_PDDR (KL_GPIOA_BASE+KL_GPIO_PDDR_OFFSET) - -#define KL_GPIOB_PDOR (KL_GPIOB_BASE+KL_GPIO_PDOR_OFFSET) -#define KL_GPIOB_PSOR (KL_GPIOB_BASE+KL_GPIO_PSOR_OFFSET) -#define KL_GPIOB_PCOR (KL_GPIOB_BASE+KL_GPIO_PCOR_OFFSET) -#define KL_GPIOB_PTOR (KL_GPIOB_BASE+KL_GPIO_PTOR_OFFSET) -#define KL_GPIOB_PDIR (KL_GPIOB_BASE+KL_GPIO_PDIR_OFFSET) -#define KL_GPIOB_PDDR (KL_GPIOB_BASE+KL_GPIO_PDDR_OFFSET) - -#define KL_GPIOC_PDOR (KL_GPIOC_BASE+KL_GPIO_PDOR_OFFSET) -#define KL_GPIOC_PSOR (KL_GPIOC_BASE+KL_GPIO_PSOR_OFFSET) -#define KL_GPIOC_PCOR (KL_GPIOC_BASE+KL_GPIO_PCOR_OFFSET) -#define KL_GPIOC_PTOR (KL_GPIOC_BASE+KL_GPIO_PTOR_OFFSET) -#define KL_GPIOC_PDIR (KL_GPIOC_BASE+KL_GPIO_PDIR_OFFSET) -#define KL_GPIOC_PDDR (KL_GPIOC_BASE+KL_GPIO_PDDR_OFFSET) - -#define KL_GPIOD_PDOR (KL_GPIOD_BASE+KL_GPIO_PDOR_OFFSET) -#define KL_GPIOD_PSOR (KL_GPIOD_BASE+KL_GPIO_PSOR_OFFSET) -#define KL_GPIOD_PCOR (KL_GPIOD_BASE+KL_GPIO_PCOR_OFFSET) -#define KL_GPIOD_PTOR (KL_GPIOD_BASE+KL_GPIO_PTOR_OFFSET) -#define KL_GPIOD_PDIR (KL_GPIOD_BASE+KL_GPIO_PDIR_OFFSET) -#define KL_GPIOD_PDDR (KL_GPIOD_BASE+KL_GPIO_PDDR_OFFSET) - -#define KL_GPIOE_PDOR (KL_GPIOE_BASE+KL_GPIO_PDOR_OFFSET) -#define KL_GPIOE_PSOR (KL_GPIOE_BASE+KL_GPIO_PSOR_OFFSET) -#define KL_GPIOE_PCOR (KL_GPIOE_BASE+KL_GPIO_PCOR_OFFSET) -#define KL_GPIOE_PTOR (KL_GPIOE_BASE+KL_GPIO_PTOR_OFFSET) -#define KL_GPIOE_PDIR (KL_GPIOE_BASE+KL_GPIO_PDIR_OFFSET) -#define KL_GPIOE_PDDR (KL_GPIOE_BASE+KL_GPIO_PDDR_OFFSET) +#define KL_GPIO_PDOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDOR_OFFSET) +#define KL_GPIO_PSOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PSOR_OFFSET) +#define KL_GPIO_PCOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PCOR_OFFSET) +#define KL_GPIO_PTOR(n) (KL_GPIO_BASE(n)+KL_GPIO_PTOR_OFFSET) +#define KL_GPIO_PDIR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDIR_OFFSET) +#define KL_GPIO_PDDR(n) (KL_GPIO_BASE(n)+KL_GPIO_PDDR_OFFSET) + +#define KL_GPIOA_PDOR (KL_GPIOA_BASE+KL_GPIO_PDOR_OFFSET) +#define KL_GPIOA_PSOR (KL_GPIOA_BASE+KL_GPIO_PSOR_OFFSET) +#define KL_GPIOA_PCOR (KL_GPIOA_BASE+KL_GPIO_PCOR_OFFSET) +#define KL_GPIOA_PTOR (KL_GPIOA_BASE+KL_GPIO_PTOR_OFFSET) +#define KL_GPIOA_PDIR (KL_GPIOA_BASE+KL_GPIO_PDIR_OFFSET) +#define KL_GPIOA_PDDR (KL_GPIOA_BASE+KL_GPIO_PDDR_OFFSET) + +#define KL_GPIOB_PDOR (KL_GPIOB_BASE+KL_GPIO_PDOR_OFFSET) +#define KL_GPIOB_PSOR (KL_GPIOB_BASE+KL_GPIO_PSOR_OFFSET) +#define KL_GPIOB_PCOR (KL_GPIOB_BASE+KL_GPIO_PCOR_OFFSET) +#define KL_GPIOB_PTOR (KL_GPIOB_BASE+KL_GPIO_PTOR_OFFSET) +#define KL_GPIOB_PDIR (KL_GPIOB_BASE+KL_GPIO_PDIR_OFFSET) +#define KL_GPIOB_PDDR (KL_GPIOB_BASE+KL_GPIO_PDDR_OFFSET) + +#define KL_GPIOC_PDOR (KL_GPIOC_BASE+KL_GPIO_PDOR_OFFSET) +#define KL_GPIOC_PSOR (KL_GPIOC_BASE+KL_GPIO_PSOR_OFFSET) +#define KL_GPIOC_PCOR (KL_GPIOC_BASE+KL_GPIO_PCOR_OFFSET) +#define KL_GPIOC_PTOR (KL_GPIOC_BASE+KL_GPIO_PTOR_OFFSET) +#define KL_GPIOC_PDIR (KL_GPIOC_BASE+KL_GPIO_PDIR_OFFSET) +#define KL_GPIOC_PDDR (KL_GPIOC_BASE+KL_GPIO_PDDR_OFFSET) + +#define KL_GPIOD_PDOR (KL_GPIOD_BASE+KL_GPIO_PDOR_OFFSET) +#define KL_GPIOD_PSOR (KL_GPIOD_BASE+KL_GPIO_PSOR_OFFSET) +#define KL_GPIOD_PCOR (KL_GPIOD_BASE+KL_GPIO_PCOR_OFFSET) +#define KL_GPIOD_PTOR (KL_GPIOD_BASE+KL_GPIO_PTOR_OFFSET) +#define KL_GPIOD_PDIR (KL_GPIOD_BASE+KL_GPIO_PDIR_OFFSET) +#define KL_GPIOD_PDDR (KL_GPIOD_BASE+KL_GPIO_PDDR_OFFSET) + +#define KL_GPIOE_PDOR (KL_GPIOE_BASE+KL_GPIO_PDOR_OFFSET) +#define KL_GPIOE_PSOR (KL_GPIOE_BASE+KL_GPIO_PSOR_OFFSET) +#define KL_GPIOE_PCOR (KL_GPIOE_BASE+KL_GPIO_PCOR_OFFSET) +#define KL_GPIOE_PTOR (KL_GPIOE_BASE+KL_GPIO_PTOR_OFFSET) +#define KL_GPIOE_PDIR (KL_GPIOE_BASE+KL_GPIO_PDIR_OFFSET) +#define KL_GPIOE_PDDR (KL_GPIOE_BASE+KL_GPIO_PDDR_OFFSET) /* Register Bit Definitions *********************************************************/ diff --git a/nuttx/arch/arm/src/kl/kl_dumpgpio.c b/nuttx/arch/arm/src/kl/kl_dumpgpio.c index c05569e77..9c21e9b85 100644 --- a/nuttx/arch/arm/src/kl/kl_dumpgpio.c +++ b/nuttx/arch/arm/src/kl/kl_dumpgpio.c @@ -114,9 +114,9 @@ void kl_dumpgpio(gpio_cfgset_t pinset, const char *msg) * address. */ - port = (pinset & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT; - DEBUGASSERT((unsigned)port <= KL_GPIO_PORTE); - base = KL_GPIO_CTRL_BASE(port); + port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT; + DEBUGASSERT((unsigned)port < KL_GPIO_NPORTS); + base = KL_GPIO_BASE(port); /* The following requires exclusive access to the GPIO registers */ @@ -124,18 +124,10 @@ void kl_dumpgpio(gpio_cfgset_t pinset, const char *msg) lldbg("GPIO%c pinset: %08x base: %08x -- %s\n", g_portchar[port], pinset, base, msg); - lldbg(" PMD: %08x OFFD: %08x DOUT: %08x DMASK: %08x\n", - getreg32(base + KL_GPIO_PMD_OFFSET), - getreg32(base + KL_GPIO_OFFD_OFFSET), - getreg32(base + KL_GPIO_DOUT_OFFSET), - getreg32(base + KL_GPIO_DMASK_OFFSET)); - lldbg(" PIN: %08x DBEN: %08x IMD: %08x IEN: %08x\n", - getreg32(base + KL_GPIO_PIN_OFFSET), - getreg32(base + KL_GPIO_DBEN_OFFSET), - getreg32(base + KL_GPIO_IMD_OFFSET), - getreg32(base + KL_GPIO_IEN_OFFSET)); - lldbg(" ISRC: %08x\n", - getreg32(base + KL_GPIO_ISRC_OFFSET)); + lldbg(" PDOR: %08x PDIR: %08x PDDR: %08x\n", + getreg32(base + KL_GPIO_PDOR_OFFSET), + getreg32(base + KL_GPIO_PDIR_OFFSET), + getreg32(base + KL_GPIO_PDDR_OFFSET)); irqrestore(flags); } -- cgit v1.2.3