summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-06-20 18:00:56 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-06-20 18:00:56 -0600
commit84f7f03032f83e1e956a809f920ffb1e71866710 (patch)
tree19df0d930561efe22522b54cf8a64c92365b5c2f
parentd613457ead9cfb4b907ba08c800d7db51084edcd (diff)
downloadpx4-nuttx-84f7f03032f83e1e956a809f920ffb1e71866710.tar.gz
px4-nuttx-84f7f03032f83e1e956a809f920ffb1e71866710.tar.bz2
px4-nuttx-84f7f03032f83e1e956a809f920ffb1e71866710.zip
KL25Z GPIO register dump function now compiles
-rw-r--r--nuttx/ChangeLog2
-rw-r--r--nuttx/arch/arm/src/kl/chip/kl_gpio.h96
-rw-r--r--nuttx/arch/arm/src/kl/kl_dumpgpio.c22
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);
}