summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/kl/chip/kl_gpio.h
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-05-02 09:24:36 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-05-02 09:24:36 -0600
commit2567deb0338a774086231fbb778b639c10398cc1 (patch)
treea07d023fcece582db7b4cb4c7aa286073938d6e3 /nuttx/arch/arm/src/kl/chip/kl_gpio.h
parentbb95a53a6ae12defb44b61ddff8b55011f983196 (diff)
downloadpx4-nuttx-2567deb0338a774086231fbb778b639c10398cc1.tar.gz
px4-nuttx-2567deb0338a774086231fbb778b639c10398cc1.tar.bz2
px4-nuttx-2567deb0338a774086231fbb778b639c10398cc1.zip
Repartitioning of header files for Kinetis L
Diffstat (limited to 'nuttx/arch/arm/src/kl/chip/kl_gpio.h')
-rw-r--r--nuttx/arch/arm/src/kl/chip/kl_gpio.h628
1 files changed, 116 insertions, 512 deletions
diff --git a/nuttx/arch/arm/src/kl/chip/kl_gpio.h b/nuttx/arch/arm/src/kl/chip/kl_gpio.h
index 64b1cad4b..997e1d1ce 100644
--- a/nuttx/arch/arm/src/kl/chip/kl_gpio.h
+++ b/nuttx/arch/arm/src/kl/chip/kl_gpio.h
@@ -1,5 +1,5 @@
-/********************************************************************************************
- * arch/arm/src/nuc1xx/chip/nuc_gpio.h
+/************************************************************************************
+ * arch/arm/src/kl/chip/kl_gpio.h
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
@@ -31,526 +31,130 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- ********************************************************************************************/
+ ************************************************************************************/
#ifndef __ARCH_ARM_SRC_KL_CHIP_KL_GPIO_H
#define __ARCH_ARM_SRC_KL_CHIP_KL_GPIO_H
-/********************************************************************************************
+/************************************************************************************
* Included Files
- ********************************************************************************************/
-
-#include <nuttx/config.h>
+ ************************************************************************************/
#include "chip.h"
-/********************************************************************************************
- * Pre-processor Definitions
- ********************************************************************************************/
-/* Register offsets *************************************************************************/
-
-#define KL_GPIO_PORTA 0
-#define KL_GPIO_PORTB 1
-#define KL_GPIO_PORTC 2
-#define KL_GPIO_PORTD 3
-#define KL_GPIO_PORTE 4
-
-#define KL_GPIO_NPORTS 5
-
-/* GPIO control registers */
-
-#define KL_GPIO_CTRL_OFFSET(n) (0x0000 + ((n) << 6))
-#define KL_GPIOA_CTRL_OFFSET (0x0000 + ((KL_GPIO_PORTA) << 6))
-#define KL_GPIOB_CTRL_OFFSET (0x0000 + ((KL_GPIO_PORTB) << 6))
-#define KL_GPIOC_CTRL_OFFSET (0x0000 + ((KL_GPIO_PORTC) << 6))
-#define KL_GPIOD_CTRL_OFFSET (0x0000 + ((KL_GPIO_PORTD) << 6))
-#define KL_GPIOE_CTRL_OFFSET (0x0000 + ((KL_GPIO_PORTE) << 6))
-
-#define KL_GPIO_PMD_OFFSET 0x0000 /* GPIO port pin I/O mode control */
-#define KL_GPIO_OFFD_OFFSET 0x0004 /* GPIO port pin digital input path disable control */
-#define KL_GPIO_DOUT_OFFSET 0x0008 /* GPIO port data output value */
-#define KL_GPIO_DMASK_OFFSET 0x000c /* GPIO port data output write mask */
-#define KL_GPIO_PIN_OFFSET 0x0010 /* GPIO port pin value */
-#define KL_GPIO_DBEN_OFFSET 0x0014 /* GPIO port de-bounce enable */
-#define KL_GPIO_IMD_OFFSET 0x0018 /* GPIO port interrupt mode control */
-#define KL_GPIO_IEN_OFFSET 0x001c /* GPIO port interrupt enable */
-#define KL_GPIO_ISRC_OFFSET 0x0020 /* GPIO port interrupt source flag */
-
-/* GPIO port A control registers */
-
-#define KL_GPIOA_PMD_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_PMD_OFFSET)
-#define KL_GPIOA_OFFD_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_OFFD_OFFSET)
-#define KL_GPIOA_DOUT_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_DOUT_OFFSET)
-#define KL_GPIOA_DMASK_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_DMASK_OFFSET)
-#define KL_GPIOA_PIN_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_PIN_OFFSET)
-#define KL_GPIOA_DBEN_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_DBEN_OFFSET)
-#define KL_GPIOA_IMD_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_IMD_OFFSET)
-#define KL_GPIOA_IEN_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_IEN_OFFSET)
-#define KL_GPIOA_ISRC_OFFSET (KL_GPIOA_CTRL_OFFSET+KL_GPIO_ISRC_OFFSET)
-
-/* GPIO port B control registers */
-
-#define KL_GPIOB_PMD_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_PMD_OFFSET)
-#define KL_GPIOB_OFFD_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_OFFD_OFFSET)
-#define KL_GPIOB_DOUT_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_DOUT_OFFSET)
-#define KL_GPIOB_DMASK_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_DMASK_OFFSET)
-#define KL_GPIOB_PIN_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_PIN_OFFSET)
-#define KL_GPIOB_DBEN_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_DBEN_OFFSET)
-#define KL_GPIOB_IMD_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_IMD_OFFSET)
-#define KL_GPIOB_IEN_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_IEN_OFFSET)
-#define KL_GPIOB_ISRC_OFFSET (KL_GPIOB_CTRL_OFFSET+KL_GPIO_ISRC_OFFSET)
-
-/* GPIO port C control registers */
-
-#define KL_GPIOC_PMD_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_PMD_OFFSET)
-#define KL_GPIOC_OFFD_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_OFFD_OFFSET)
-#define KL_GPIOC_DOUT_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_DOUT_OFFSET)
-#define KL_GPIOC_DMASK_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_DMASK_OFFSET)
-#define KL_GPIOC_PIN_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_PIN_OFFSET)
-#define KL_GPIOC_DBEN_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_DBEN_OFFSET)
-#define KL_GPIOC_IMD_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_IMD_OFFSET)
-#define KL_GPIOC_IEN_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_IEN_OFFSET)
-#define KL_GPIOC_ISRC_OFFSET (KL_GPIOC_CTRL_OFFSET+KL_GPIO_ISRC_OFFSET)
-
-/* GPIO port D control registers */
-
-#define KL_GPIOD_PMD_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_PMD_OFFSET)
-#define KL_GPIOD_OFFD_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_OFFD_OFFSET)
-#define KL_GPIOD_DOUT_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_DOUT_OFFSET)
-#define KL_GPIOD_DMASK_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_DMASK_OFFSET)
-#define KL_GPIOD_PIN_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_PIN_OFFSET)
-#define KL_GPIOD_DBEN_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_DBEN_OFFSET)
-#define KL_GPIOD_IMD_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_IMD_OFFSET)
-#define KL_GPIOD_IEN_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_IEN_OFFSET)
-#define KL_GPIOD_ISRC_OFFSET (KL_GPIOD_CTRL_OFFSET+KL_GPIO_ISRC_OFFSET)
-
-/* GPIO port E control registers */
-
-#define KL_GPIOE_PMD_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_PMD_OFFSET)
-#define KL_GPIOE_OFFD_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_OFFD_OFFSET)
-#define KL_GPIOE_DOUT_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_DOUT_OFFSET)
-#define KL_GPIOE_DMASK_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_DMASK_OFFSET)
-#define KL_GPIOE_PIN_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_PIN_OFFSET)
-#define KL_GPIOE_DBEN_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_DBEN_OFFSET)
-#define KL_GPIOE_IMD_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_IMD_OFFSET)
-#define KL_GPIOE_IEN_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_IEN_OFFSET)
-#define KL_GPIOE_ISRC_OFFSET (KL_GPIOE_CTRL_OFFSET+KL_GPIO_ISRC_OFFSET)
-
-/* Debounce control registers */
-
-#define KL_GPIO_DBNCECON_OFFSEt 0x0180 /* De-bounce cycle control register */
-
-/* GPIO port data I/O register offsets */
-
-#define KL_PORT_DATAIO_OFFSET(p) (0x0200 + ((p)<< 6))
-# define KL_PORTA_DATAIO_OFFSET (0x0200 + ((KL_GPIO_PORTA) << 6))
-# define KL_PORTB_DATAIO_OFFSET (0x0200 + ((KL_GPIO_PORTB) << 6))
-# define KL_PORTC_DATAIO_OFFSET (0x0200 + ((KL_GPIO_PORTC) << 6))
-# define KL_PORTD_DATAIO_OFFSET (0x0200 + ((KL_GPIO_PORTD) << 6))
-# define KL_PORTE_DATAIO_OFFSET (0x0200 + ((KL_GPIO_PORTE) << 6))
-
-/* GPIO port pin data I/O register offsets */
-
-#define KL_PORT_PIN_OFFSET(n) ((n) << 2)
-# define KL_PORT_PIN0_OFFSET (0 << 2)
-# define KL_PORT_PIN1_OFFSET (1 << 2)
-# define KL_PORT_PIN2_OFFSET (2 << 2)
-# define KL_PORT_PIN3_OFFSET (3 << 2)
-# define KL_PORT_PIN4_OFFSET (4 << 2)
-# define KL_PORT_PIN5_OFFSET (5 << 2)
-# define KL_PORT_PIN6_OFFSET (16 << 2)
-# define KL_PORT_PIN7_OFFSET (17 << 2)
-# define KL_PORT_PIN8_OFFSET (18 << 2)
-# define KL_PORT_PIN9_OFFSET (19 << 2)
-# define KL_PORT_PIN10_OFFSET (10 << 2)
-# define KL_PORT_PIN11_OFFSET (11 << 2)
-# define KL_PORT_PIN12_OFFSET (12 << 2)
-# define KL_PORT_PIN13_OFFSET (13 << 2)
-# define KL_PORT_PIN14_OFFSET (14 << 2)
-# define KL_PORT_PIN15_OFFSET (15 << 2)
-
-#define KL_PORT_PDIO_OFFSET(p,n) (KL_PORT_DATAIO_OFFSET(p)+KL_PORT_PIN_OFFSET(n))
-
-/* GPIO PA Pin Data Input/Output */
-
-#define KL_PORTA_PDIO_OFFSET(n) (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN_OFFSET(n))
-# define KL_PA1_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA2_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA3_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA4_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA5_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA6_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA7_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA8_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA9_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA10_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA11_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA12_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA13_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA14_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PA15_PDIO_OFFSET (KL_PORTA_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-
-/* GPIO PB Pin Data Input/Output */
-
-#define KL_PORTB_PDIO_OFFSET(n) (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN_OFFSET(n))
-# define KL_PB1_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB2_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB3_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB4_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB5_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB6_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB7_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB8_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB9_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB10_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB11_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB12_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB13_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB14_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PB15_PDIO_OFFSET (KL_PORTB_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-
-/* GPIO PC Pin Data Input/Output */
-
-#define KL_PORTC_PDIO_OFFSET(n) (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN_OFFSET(n))
-# define KL_PC1_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC2_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC3_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC4_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC5_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC6_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC7_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC8_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC9_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC10_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC11_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC12_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC13_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC14_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PC15_PDIO_OFFSET (KL_PORTC_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-
-/* GPIO PD Pin Data Input/Output */
-
-#define KL_PORTD_PDIO_OFFSET(n) (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN_OFFSET(n))
-# define KL_PD1_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD2_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD3_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD4_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD5_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD6_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD7_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD8_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD9_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD10_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD11_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD12_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD13_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD14_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-# define KL_PD15_PDIO_OFFSET (KL_PORTD_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-
-/* GPIO PE Pin Data Input/Output */
-
-#define KL_PORTE_PDIO_OFFSET(n) (KL_PORTE_DATAIO_OFFSET+KL_PORT_PIN_OFFSET(n))
-# define KL_PE5_PDIO_OFFSET (KL_PORTE_DATAIO_OFFSET+KL_PORT_PIN0_OFFSET)
-
-/* Register addresses ***********************************************************************/
-
-/* GPIO control registers */
-
-#define KL_GPIO_CTRL_BASE(n) (KL_GPIO_BASE+KL_GPIO_CTRL_OFFSET(n))
-#define KL_GPIOA_CTRL_BASE (KL_GPIO_BASE+KL_GPIOA_CTRL_OFFSET)
-#define KL_GPIOB_CTRL_BASE (KL_GPIO_BASE+KL_GPIOB_CTRL_OFFSET)
-#define KL_GPIOC_CTRL_BASE (KL_GPIO_BASE+KL_GPIOC_CTRL_OFFSET)
-#define KL_GPIOD_CTRL_BASE (KL_GPIO_BASE+KL_GPIOD_CTRL_OFFSET)
-#define KL_GPIOE_CTRL_BASE (KL_GPIO_BASE+KL_GPIOE_CTRL_OFFSET)
-
-/* GPIO port A control registers */
-
-#define KL_GPIOA_PMD (KL_GPIO_BASE+KL_GPIOA_PMD_OFFSET)
-#define KL_GPIOA_OFFD (KL_GPIO_BASE+KL_GPIOA_OFFD_OFFSET)
-#define KL_GPIOA_DOUT (KL_GPIO_BASE+KL_GPIOA_DOUT_OFFSET)
-#define KL_GPIOA_DMASK (KL_GPIO_BASE+KL_GPIOA_DMASK_OFFSET)
-#define KL_GPIOA_PIN (KL_GPIO_BASE+KL_GPIOA_PIN_OFFSET)
-#define KL_GPIOA_DBEN (KL_GPIO_BASE+KL_GPIOA_DBEN_OFFSET)
-#define KL_GPIOA_IMD (KL_GPIO_BASE+KL_GPIOA_IMD_OFFSET)
-#define KL_GPIOA_IEN (KL_GPIO_BASE+KL_GPIOA_IEN_OFFSET)
-#define KL_GPIOA_ISRC (KL_GPIO_BASE+KL_GPIOA_ISRC_OFFSET)
-
-/* GPIO port B control registers */
-
-#define KL_GPIOB_PMD (KL_GPIO_BASE+KL_GPIOB_PMD_OFFSET)
-#define KL_GPIOB_OFFD (KL_GPIO_BASE+KL_GPIOB_OFFD_OFFSET)
-#define KL_GPIOB_DOUT (KL_GPIO_BASE+KL_GPIOB_DOUT_OFFSET)
-#define KL_GPIOB_DMASK (KL_GPIO_BASE+KL_GPIOB_DMASK_OFFSET)
-#define KL_GPIOB_PIN (KL_GPIO_BASE+KL_GPIOB_PIN_OFFSET)
-#define KL_GPIOB_DBEN (KL_GPIO_BASE+KL_GPIOB_DBEN_OFFSET)
-#define KL_GPIOB_IMD (KL_GPIO_BASE+KL_GPIOB_IMD_OFFSET)
-#define KL_GPIOB_IEN (KL_GPIO_BASE+KL_GPIOB_IEN_OFFSET)
-#define KL_GPIOB_ISRC (KL_GPIO_BASE+KL_GPIOB_ISRC_OFFSET)
-
-/* GPIO port C control registers */
-
-#define KL_GPIOC_PMD (KL_GPIO_BASE+KL_GPIOC_PMD_OFFSET)
-#define KL_GPIOC_OFFD (KL_GPIO_BASE+KL_GPIOC_OFFD_OFFSET)
-#define KL_GPIOC_DOUT (KL_GPIO_BASE+KL_GPIOC_DOUT_OFFSET)
-#define KL_GPIOC_DMASK (KL_GPIO_BASE+KL_GPIOC_DMASK_OFFSET)
-#define KL_GPIOC_PIN (KL_GPIO_BASE+KL_GPIOC_PIN_OFFSET)
-#define KL_GPIOC_DBEN (KL_GPIO_BASE+KL_GPIOC_DBEN_OFFSET)
-#define KL_GPIOC_IMD (KL_GPIO_BASE+KL_GPIOC_IMD_OFFSET)
-#define KL_GPIOC_IEN (KL_GPIO_BASE+KL_GPIOC_IEN_OFFSET)
-#define KL_GPIOC_ISRC (KL_GPIO_BASE+KL_GPIOC_ISRC_OFFSET)
-
-/* GPIO port D control registers */
-
-#define KL_GPIOD_PMD (KL_GPIO_BASE+KL_GPIOD_PMD_OFFSET)
-#define KL_GPIOD_OFFD (KL_GPIO_BASE+KL_GPIOD_OFFD_OFFSET)
-#define KL_GPIOD_DOUT (KL_GPIO_BASE+KL_GPIOD_DOUT_OFFSET)
-#define KL_GPIOD_DMASK (KL_GPIO_BASE+KL_GPIOD_DMASK_OFFSET)
-#define KL_GPIOD_PIN (KL_GPIO_BASE+KL_GPIOD_PIN_OFFSET)
-#define KL_GPIOD_DBEN (KL_GPIO_BASE+KL_GPIOD_DBEN_OFFSET)
-#define KL_GPIOD_IMD (KL_GPIO_BASE+KL_GPIOD_IMD_OFFSET)
-#define KL_GPIOD_IEN (KL_GPIO_BASE+KL_GPIOD_IEN_OFFSET)
-#define KL_GPIOD_ISRC (KL_GPIO_BASE+KL_GPIOD_ISRC_OFFSET)
-
-/* GPIO port E control registers */
-
-#define KL_GPIOE_PMD (KL_GPIO_BASE+KL_GPIOE_PMD_OFFSET)
-#define KL_GPIOE_OFFD (KL_GPIO_BASE+KL_GPIOE_OFFD_OFFSET)
-#define KL_GPIOE_DOUT (KL_GPIO_BASE+KL_GPIOE_DOUT_OFFSET)
-#define KL_GPIOE_DMASK (KL_GPIO_BASE+KL_GPIOE_DMASK_OFFSET)
-#define KL_GPIOE_PIN (KL_GPIO_BASE+KL_GPIOE_PIN_OFFSET)
-#define KL_GPIOE_DBEN (KL_GPIO_BASE+KL_GPIOE_DBEN_OFFSET)
-#define KL_GPIOE_IMD (KL_GPIO_BASE+KL_GPIOE_IMD_OFFSET)
-#define KL_GPIOE_IEN (KL_GPIO_BASE+KL_GPIOE_IEN_OFFSET)
-#define KL_GPIOE_ISRC (KL_GPIO_BASE+KL_GPIOE_ISRC_OFFSET)
-
-/* Debounce control registers */
-
-#define KL_GPIO_DBNCECON (KL_GPIO_BASE+KL_GPIO_DBNCECON_OFFSET)
-
-/* GPIO port data I/O register offsets */
-
-#define KL_PORT_DATAIO_BASE(p) (KL_GPIO_BASE+KL_PORT_DATAIO_OFFSET(p))
-# define KL_PORTA_DATAIO_BASE (KL_GPIO_BASE+KL_PORTA_DATAIO_OFFSET)
-# define KL_PORTB_DATAIO_BASE (KL_GPIO_BASE+KL_PORTB_DATAIO_OFFSET)
-# define KL_PORTC_DATAIO_BASE (KL_GPIO_BASE+KL_PORTC_DATAIO_OFFSET)
-# define KL_PORTD_DATAIO_BASE (KL_GPIO_BASE+KL_PORTD_DATAIO_OFFSET)
-# define KL_PORTE_DATAIO_BASE (KL_GPIO_BASE+KL_PORTE_DATAIO_OFFSET)
-
-#define KL_PORT_PDIO(p,n) (KL_GPIO_BASE+KL_PORT_PDIO_OFFSET(p,n))
-
-/* GPIO PA Pin Data Input/Output */
-
-#define KL_PORTA_PDIO(n) (KL_GPIO_BASE+KL_PORTA_PDIO_OFFSET(n))
-# define KL_PA1_PDIO (KL_GPIO_BASE+KL_PA1_PDIO_OFFSET)
-# define KL_PA2_PDIO (KL_GPIO_BASE+KL_PA2_PDIO_OFFSET)
-# define KL_PA3_PDIO (KL_GPIO_BASE+KL_PA3_PDIO_OFFSET)
-# define KL_PA4_PDIO (KL_GPIO_BASE+KL_PA4_PDIO_OFFSET)
-# define KL_PA5_PDIO (KL_GPIO_BASE+KL_PA5_PDIO_OFFSET)
-# define KL_PA6_PDIO (KL_GPIO_BASE+KL_PA6_PDIO_OFFSET)
-# define KL_PA7_PDIO (KL_GPIO_BASE+KL_PA7_PDIO_OFFSET)
-# define KL_PA8_PDIO (KL_GPIO_BASE+KL_PA8_PDIO_OFFSET)
-# define KL_PA9_PDIO (KL_GPIO_BASE+KL_PA9_PDIO_OFFSET)
-# define KL_PA10_PDIO (KL_GPIO_BASE+KL_PA10_PDIO_OFFSET)
-# define KL_PA11_PDIO (KL_GPIO_BASE+KL_PA11_PDIO_OFFSET)
-# define KL_PA12_PDIO (KL_GPIO_BASE+KL_PA12_PDIO_OFFSET)
-# define KL_PA13_PDIO (KL_GPIO_BASE+KL_PA13_PDIO_OFFSET)
-# define KL_PA14_PDIO (KL_GPIO_BASE+KL_PA14_PDIO_OFFSET)
-# define KL_PA15_PDIO (KL_GPIO_BASE+KL_PA15_PDIO_OFFSET)
-
-/* GPIO PB Pin Data Input/Output */
-
-#define KL_PORTB_PDIO(n) (KL_GPIO_BASE+KL_PORTB_PDIO_OFFSET(n))
-# define KL_PB1_PDIO (KL_GPIO_BASE+KL_PB1_PDIO_OFFSET)
-# define KL_PB2_PDIO (KL_GPIO_BASE+KL_PB2_PDIO_OFFSET)
-# define KL_PB3_PDIO (KL_GPIO_BASE+KL_PB3_PDIO_OFFSET)
-# define KL_PB4_PDIO (KL_GPIO_BASE+KL_PB4_PDIO_OFFSET)
-# define KL_PB5_PDIO (KL_GPIO_BASE+KL_PB5_PDIO_OFFSET)
-# define KL_PB6_PDIO (KL_GPIO_BASE+KL_PB6_PDIO_OFFSET)
-# define KL_PB7_PDIO (KL_GPIO_BASE+KL_PB7_PDIO_OFFSET)
-# define KL_PB8_PDIO (KL_GPIO_BASE+KL_PB8_PDIO_OFFSET)
-# define KL_PB9_PDIO (KL_GPIO_BASE+KL_PB9_PDIO_OFFSET)
-# define KL_PB10_PDIO (KL_GPIO_BASE+KL_PB10_PDIO_OFFSET)
-# define KL_PB11_PDIO (KL_GPIO_BASE+KL_PB11_PDIO_OFFSET)
-# define KL_PB12_PDIO (KL_GPIO_BASE+KL_PB12_PDIO_OFFSET)
-# define KL_PB13_PDIO (KL_GPIO_BASE+KL_PB13_PDIO_OFFSET)
-# define KL_PB14_PDIO (KL_GPIO_BASE+KL_PB14_PDIO_OFFSET)
-# define KL_PB15_PDIO (KL_GPIO_BASE+KL_PB15_PDIO_OFFSET)
-
-/* GPIO PC Pin Data Input/Output */
-
-#define KL_PORTC_PDIO(n) (KL_GPIO_BASE+KL_PORTC_PDIO_OFFSET(n))
-# define KL_PC1_PDIO (KL_GPIO_BASE+KL_PC1_PDIO_OFFSET)
-# define KL_PC2_PDIO (KL_GPIO_BASE+KL_PC2_PDIO_OFFSET)
-# define KL_PC3_PDIO (KL_GPIO_BASE+KL_PC3_PDIO_OFFSET)
-# define KL_PC4_PDIO (KL_GPIO_BASE+KL_PC4_PDIO_OFFSET)
-# define KL_PC5_PDIO (KL_GPIO_BASE+KL_PC5_PDIO_OFFSET)
-# define KL_PC6_PDIO (KL_GPIO_BASE+KL_PC6_PDIO_OFFSET)
-# define KL_PC7_PDIO (KL_GPIO_BASE+KL_PC7_PDIO_OFFSET)
-# define KL_PC8_PDIO (KL_GPIO_BASE+KL_PC8_PDIO_OFFSET)
-# define KL_PC9_PDIO (KL_GPIO_BASE+KL_PC9_PDIO_OFFSET)
-# define KL_PC10_PDIO (KL_GPIO_BASE+KL_PC10_PDIO_OFFSET)
-# define KL_PC11_PDIO (KL_GPIO_BASE+KL_PC11_PDIO_OFFSET)
-# define KL_PC12_PDIO (KL_GPIO_BASE+KL_PC12_PDIO_OFFSET)
-# define KL_PC13_PDIO (KL_GPIO_BASE+KL_PC13_PDIO_OFFSET)
-# define KL_PC14_PDIO (KL_GPIO_BASE+KL_PC14_PDIO_OFFSET)
-# define KL_PC15_PDIO (KL_GPIO_BASE+KL_PC15_PDIO_OFFSET)
-
-/* GPIO PD Pin Data Input/Output */
-
-#define KL_PORTD_PDIO(n) (KL_GPIO_BASE+KL_PORTD_PDIO_OFFSET(n))
-# define KL_PD1_PDIO (KL_GPIO_BASE+KL_PD1_PDIO_OFFSET)
-# define KL_PD2_PDIO (KL_GPIO_BASE+KL_PD2_PDIO_OFFSET)
-# define KL_PD3_PDIO (KL_GPIO_BASE+KL_PD3_PDIO_OFFSET)
-# define KL_PD4_PDIO (KL_GPIO_BASE+KL_PD4_PDIO_OFFSET)
-# define KL_PD5_PDIO (KL_GPIO_BASE+KL_PD5_PDIO_OFFSET)
-# define KL_PD6_PDIO (KL_GPIO_BASE+KL_PD6_PDIO_OFFSET)
-# define KL_PD7_PDIO (KL_GPIO_BASE+KL_PD7_PDIO_OFFSET)
-# define KL_PD8_PDIO (KL_GPIO_BASE+KL_PD8_PDIO_OFFSET)
-# define KL_PD9_PDIO (KL_GPIO_BASE+KL_PD9_PDIO_OFFSET)
-# define KL_PD10_PDIO (KL_GPIO_BASE+KL_PD10_PDIO_OFFSET)
-# define KL_PD11_PDIO (KL_GPIO_BASE+KL_PD11_PDIO_OFFSET)
-# define KL_PD12_PDIO (KL_GPIO_BASE+KL_PD12_PDIO_OFFSET)
-# define KL_PD13_PDIO (KL_GPIO_BASE+KL_PD13_PDIO_OFFSET)
-# define KL_PD14_PDIO (KL_GPIO_BASE+KL_PD14_PDIO_OFFSET)
-# define KL_PD15_PDIO (KL_GPIO_BASE+KL_PD15_PDIO_OFFSET)
-
-/* GPIO PE Pin Data Input/Output */
-
-#define KL_PORTE_PDIO(n) (KL_GPIO_BASE+KL_PORTE_PDIO_OFFSET(n))
-# define KL_PE5_PDIO (KL_GPIO_BASE+KL_PE5_PDIO_OFFSET)
-
-/* Register bit-field definitions ***********************************************************/
-
-/* GPIO port pin I/O mode control */
-
-#define GPIO_PMD_INPUT 0 /* Input */
-#define GPIO_PMD_OUTPUT 1 /* Push-pull output */
-#define GPIO_PMD_OPENDRAIN 2 /* Open drain output */
-#define GPIO_PMD_BIDI 3 /* Quasi bi-directional */
-
-#define GPIO_PMD_SHIFT(n) ((n) << 1) /* Bits 2n-2n+1: GPIOx Pin[n] mode control */
-#define GPIO_PMD_MASK(n) (3 << GPIO_PMD_SHIFT(n))
-# define GPIO_PMD(n,v) ((v) << GPIO_PMD_SHIFT(n))
-
-#define GPIO_PMD0_SHIFT (0) /* Bits 0-1: GPIOx Pin0 mode control */
-#define GPIO_PMD0_MASK (3 << GPIO_PMD0_SHIFT)
-# define GPIO_PMD0(v) ((v) << GPIO_PMD0_SHIFT)
-#define GPIO_PMD1_SHIFT (2) /* Bits 2-3: GPIOx Pin1 mode control */
-#define GPIO_PMD1_MASK (3 << GPIO_PMD1_SHIFT)
-# define GPIO_PMD1(v) ((v) << GPIO_PMD1_SHIFT)
-#define GPIO_PMD2_SHIFT (4) /* Bits 4-5: GPIOx Pin2 mode control */
-#define GPIO_PMD2_MASK (3 << GPIO_PMD2_SHIFT)
-# define GPIO_PMD2(v) ((v) << GPIO_PMD2_SHIFT)
-#define GPIO_PMD3_SHIFT (6) /* Bits 6-7: GPIOx Pin3 mode control */
-#define GPIO_PMD3_MASK (3 << GPIO_PMD3_SHIFT)
-# define GPIO_PMD3(v) ((v) << GPIO_PMD3_SHIFT)
-#define GPIO_PMD4_SHIFT (8) /* Bits 8-9: GPIOx Pin4 mode control */
-#define GPIO_PMD4_MASK (3 << GPIO_PMD4_SHIFT)
-# define GPIO_PMD4(v) ((v) << GPIO_PMD4_SHIFT)
-#define GPIO_PMD5_SHIFT (10) /* Bits 10-11: GPIOx Pin5 mode control */
-#define GPIO_PMD5_MASK (3 << GPIO_PMD5_SHIFT)
-# define GPIO_PMD5(v) ((v) << GPIO_PMD5_SHIFT)
-#define GPIO_PMD6_SHIFT (12) /* Bits 12-13: GPIOx Pin6 mode control */
-#define GPIO_PMD6_MASK (3 << GPIO_PMD6_SHIFT)
-# define GPIO_PMD6(v) ((v) << GPIO_PMD6_SHIFT)
-#define GPIO_PMD7_SHIFT (14) /* Bits 14-15: GPIOx Pin7 mode control */
-#define GPIO_PMD7_MASK (3 << GPIO_PMD7_SHIFT)
-# define GPIO_PMD7(v) ((v) << GPIO_PMD7_SHIFT)
-#define GPIO_PMD8_SHIFT (16) /* Bits 16-17: GPIOx Pin8 mode control */
-#define GPIO_PMD8_MASK (3 << GPIO_PMD8_SHIFT)
-# define GPIO_PMD8(v) ((v) << GPIO_PMD8_SHIFT)
-#define GPIO_PMD9_SHIFT (18) /* Bits 18-19: GPIOx Pin9 mode control */
-#define GPIO_PMD9_MASK (3 << GPIO_PMD9_SHIFT)
-# define GPIO_PMD9(v) ((v) << GPIO_PMD9_SHIFT)
-#define GPIO_PMD10_SHIFT (20) /* Bits 20-21: GPIOx Pin0 mode control */
-#define GPIO_PMD10_MASK (3 << GPIO_PMD10_SHIFT)
-# define GPIO_PMD10(v) ((v) << GPIO_PMD10_SHIFT)
-#define GPIO_PMD11_SHIFT (22) /* Bits 22-23: GPIOx Pin1 mode control */
-#define GPIO_PMD11_MASK (3 << GPIO_PMD11_SHIFT)
-# define GPIO_PMD11(v) ((v) << GPIO_PMD11_SHIFT)
-#define GPIO_PMD12_SHIFT (24) /* Bits 24-25: GPIOx Pin2 mode control */
-#define GPIO_PMD12_MASK (3 << GPIO_PMD12_SHIFT)
-# define GPIO_PMD12(v) ((v) << GPIO_PMD12_SHIFT)
-#define GPIO_PMD13_SHIFT (26) /* Bits 26-27: GPIOx Pin3 mode control */
-#define GPIO_PMD13_MASK (3 << GPIO_PMD13_SHIFT)
-# define GPIO_PMD13(v) ((v) << GPIO_PMD13_SHIFT)
-#define GPIO_PMD14_SHIFT (28) /* Bits 28-29: GPIOx Pin4 mode control */
-#define GPIO_PMD14_MASK (3 << GPIO_PMD14_SHIFT)
-# define GPIO_PMD14(v) ((v) << GPIO_PMD14_SHIFT)
-#define GPIO_PMD15_SHIFT (30) /* Bits 30-31: GPIOx Pin5 mode control */
-#define GPIO_PMD15_MASK (3 << GPIO_PMD15_SHIFT)
-# define GPIO_PMD15(v) ((v) << GPIO_PMD15_SHIFT)
-
-/* GPIO port pin digital input path disable control */
-
-#define GPIO_OFFD(n) (1 << (n)) /* Bit n: GPIOx Pin[n] digital input path disable control */
-
-/* GPIO port data output value */
-
-#define GPIO_DOUT(n) (1 << (n)) /* Bit n: GPIOx Pin[n] output value */
-
-/* GPIO port data output write mask */
-
-#define GPIO_DMASK(n) (1 << (n)) /* Bit n: GPIOx Pin[n] data output write mask */
-
-/* GPIO port pin value */
-
-#define GPIO_PIN(n) (1 << (n)) /* Bit n: GPIOx Pin[n] pin value */
-
-/* GPIO port de-bounce enable */
-
-#define GPIO_DBEN(n) (1 << (n)) /* Bit n: GPIOx Pin[n] input signal de-bounce enable */
-
-/* GPIO port interrupt mode control */
-
-#define GPIO_IMD(n) (1 << (n)) /* Bit n: GPIOx Pin[n] edge/level detection interrupt control */
-
-/* GPIO port interrupt enable */
-
-#define GPIO_IF_EN(n) (1 << (n)) /* Bit n: GPIOx Pin[n] interrupt enable low/falling */
-#define GPIO_IR_EN(n) (1 << ((n)+16)) /* Bit n: GPIOx Pin[n] interrupt enable high/rising */
-
-/* GPIO port interrupt source flag */
-
-#define GPIO_ISRC(n) (1 << (n)) /* Bit n: GPIOx Pin[n] interrupt source flag */
-
-/* De-bounce cycle control register */
-
-#define GPIO_DBNCECON_DBCLKSEL_SHIFT (0) /* Bits 0-3: De-bounce cycling count selection */
-#define GPIO_DBNCECON_DBCLKSEL_MASK (15 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_1 (0 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_2 (1 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_4 (2 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_8 (3 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_16 (4 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_32 (5 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_64 (6 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_128 (7 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_256 (8 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_512 (9 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_1024 (10 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_2048 (11 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_4096 (12 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_8102 (13 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_16384 (14 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-# define GPIO_DBNCECON_DBCLKSEL_32768 (15 << GPIO_DBNCECON_DBCLKSEL_SHIFT)
-#define GPIO_DBNCECON_DBCLKSRC (1 << 4) /* Bit 4: De-bounce counter clock source selection */
-#define GPIO_DBNCECON_ICLK_ON (1 << 5) /* Bit 5: Interrupt clock on mode */
-
-/* GPIO port data I/O registers */
-
-#define PORT_MASK (1) /* Bit 0: GPIOx Pin[n] data I/O */
-
-/********************************************************************************************
+/************************************************************************************
+ * Pre-processorDefinitions
+ ************************************************************************************/
+
+/* 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 */
+
+/* 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)
+
+/* Register Bit Definitions *********************************************************/
+
+/* Port Data Output Register */
+
+#define GPIO_PDOR(n) (1 << (n))
+
+/* Port Set Output Register */
+
+#define GPIO_PSOR(n) (1 << (n))
+
+/* Port Clear Output Register */
+
+#define GPIO_PCOR(n) (1 << (n))
+
+/* Port Toggle Output Register */
+
+#define GPIO_PTOR(n) (1 << (n))
+
+/* Port Data Input Register */
+
+#define GPIO_PDIR(n) (1 << (n))
+
+/* Port Data Direction Register */
+
+#define GPIO_PDDR(n) (1 << (n))
+
+/************************************************************************************
* Public Types
- ********************************************************************************************/
+ ************************************************************************************/
-/********************************************************************************************
- * Public Data
- ********************************************************************************************/
+/************************************************************************************
+ * Inline Functions
+ ************************************************************************************/
-/********************************************************************************************
- * Public Functions
- ********************************************************************************************/
+#ifndef __ASSEMBLY__
+/************************************************************************************
+ * Public Data
+ ************************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/************************************************************************************
+ * Public Function Prototypes
+ ************************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+#endif /* __ASSEMBLY__ */
#endif /* __ARCH_ARM_SRC_KL_CHIP_KL_GPIO_H */