diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2013-05-02 09:24:36 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2013-05-02 09:24:36 -0600 |
commit | 2567deb0338a774086231fbb778b639c10398cc1 (patch) | |
tree | a07d023fcece582db7b4cb4c7aa286073938d6e3 /nuttx/arch/arm/src/kl/chip/kl_gpio.h | |
parent | bb95a53a6ae12defb44b61ddff8b55011f983196 (diff) | |
download | px4-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.h | 628 |
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 */ |