diff --git a/soc/arm/microchip_mec/common/soc_gpio.h b/soc/arm/microchip_mec/common/soc_gpio.h new file mode 100644 index 00000000000..afe627eaacc --- /dev/null +++ b/soc/arm/microchip_mec/common/soc_gpio.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2019 Intel Corporation + * SPDX-License-Identifier: Apache-2.0 + */ + +/** @file + * @brief Microchip XEC MCU family General Purpose Input Output (GPIO) defines. + * + */ + +#ifndef _MICROCHIP_MEC_SOC_GPIO_H_ +#define _MICROCHIP_MEC_SOC_GPIO_H_ + +#define MCHP_GPIO_000_036 0 +#define MCHP_GPIO_040_076 1 +#define MCHP_GPIO_100_136 2 +#define MCHP_GPIO_140_176 3 +#define MCHP_GPIO_200_236 4 +#define MCHP_GPIO_240_276 5 +#define MCHP_GPIO_MAX_PORT 6 +#define MCHP_NUM_GPIO_PORTS 6 + +#endif /* _MICROCHIP_MEC_SOC_GPIO_H_ */ diff --git a/soc/arm/microchip_mec/common/soc_pins.h b/soc/arm/microchip_mec/common/soc_pins.h new file mode 100644 index 00000000000..c98cf0a905a --- /dev/null +++ b/soc/arm/microchip_mec/common/soc_pins.h @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2019 Intel Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef _SOC_MCHP_GPIOS_H_ +#define _SOC_MCHP_GPIOS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Begin Port A */ +#define MCHP_GPIO_000 (0U) +#define MCHP_GPIO_001 (1U) +#define MCHP_GPIO_002 (2U) +#define MCHP_GPIO_003 (3U) +#define MCHP_GPIO_004 (4U) +#define MCHP_GPIO_005 (5U) +#define MCHP_GPIO_006 (6U) +#define MCHP_GPIO_007 (7U) +#define MCHP_GPIO_010 (8U) +#define MCHP_GPIO_011 (9U) +#define MCHP_GPIO_012 (10U) +#define MCHP_GPIO_013 (11U) +#define MCHP_GPIO_014 (12U) +#define MCHP_GPIO_015 (13U) +#define MCHP_GPIO_016 (14U) +#define MCHP_GPIO_017 (15U) +#define MCHP_GPIO_020 (16U) +#define MCHP_GPIO_021 (17U) +#define MCHP_GPIO_022 (18U) +#define MCHP_GPIO_023 (19U) +#define MCHP_GPIO_024 (20U) +#define MCHP_GPIO_025 (21U) +#define MCHP_GPIO_026 (22U) +#define MCHP_GPIO_027 (23U) +#define MCHP_GPIO_030 (24U) +#define MCHP_GPIO_031 (25U) +#define MCHP_GPIO_032 (26U) +#define MCHP_GPIO_033 (27U) +#define MCHP_GPIO_034 (28U) +#define MCHP_GPIO_035 (29U) +#define MCHP_GPIO_036 (30U) +/* End Port A */ + +/* Begin Port B */ +#define MCHP_GPIO_040 (0U) +#define MCHP_GPIO_041 (1U) +#define MCHP_GPIO_042 (2U) +#define MCHP_GPIO_043 (3U) +#define MCHP_GPIO_044 (4U) +#define MCHP_GPIO_045 (5U) +#define MCHP_GPIO_046 (6U) +#define MCHP_GPIO_047 (7U) +#define MCHP_GPIO_050 (8U) +#define MCHP_GPIO_051 (9U) +#define MCHP_GPIO_052 (10U) +#define MCHP_GPIO_053 (11U) +#define MCHP_GPIO_054 (12U) +#define MCHP_GPIO_055 (13U) +#define MCHP_GPIO_056 (14U) +#define MCHP_GPIO_057 (15U) +#define MCHP_GPIO_060 (16U) +#define MCHP_GPIO_061 (17U) +#define MCHP_GPIO_062 (18U) +#define MCHP_GPIO_063 (19U) +#define MCHP_GPIO_064 (20U) +#define MCHP_GPIO_065 (21U) +#define MCHP_GPIO_066 (22U) +#define MCHP_GPIO_067 (23U) +#define MCHP_GPIO_070 (24U) +#define MCHP_GPIO_071 (25U) +#define MCHP_GPIO_072 (26U) +#define MCHP_GPIO_073 (27U) +#define MCHP_GPIO_074 (28U) +#define MCHP_GPIO_075 (29U) +#define MCHP_GPIO_076 (30U) +/* End Port B */ + +/* Begin Port C */ +#define MCHP_GPIO_100 (0U) +#define MCHP_GPIO_101 (1U) +#define MCHP_GPIO_102 (2U) +#define MCHP_GPIO_103 (3U) +#define MCHP_GPIO_104 (4U) +#define MCHP_GPIO_105 (5U) +#define MCHP_GPIO_106 (6U) +#define MCHP_GPIO_107 (7U) +#define MCHP_GPIO_110 (8U) +#define MCHP_GPIO_111 (9U) +#define MCHP_GPIO_112 (10U) +#define MCHP_GPIO_113 (11U) +#define MCHP_GPIO_114 (12U) +#define MCHP_GPIO_115 (13U) +#define MCHP_GPIO_116 (14U) +#define MCHP_GPIO_117 (15U) +#define MCHP_GPIO_120 (16U) +#define MCHP_GPIO_121 (17U) +#define MCHP_GPIO_122 (18U) +#define MCHP_GPIO_123 (19U) +#define MCHP_GPIO_124 (20U) +#define MCHP_GPIO_125 (21U) +#define MCHP_GPIO_126 (22U) +#define MCHP_GPIO_127 (23U) +#define MCHP_GPIO_130 (24U) +#define MCHP_GPIO_131 (25U) +#define MCHP_GPIO_132 (26U) +#define MCHP_GPIO_133 (27U) +#define MCHP_GPIO_134 (28U) +#define MCHP_GPIO_135 (29U) +#define MCHP_GPIO_136 (30U) +/* End Port C */ + +/* Begin Port D */ +#define MCHP_GPIO_140 (0U) +#define MCHP_GPIO_141 (1U) +#define MCHP_GPIO_142 (2U) +#define MCHP_GPIO_143 (3U) +#define MCHP_GPIO_144 (4U) +#define MCHP_GPIO_145 (5U) +#define MCHP_GPIO_146 (6U) +#define MCHP_GPIO_147 (7U) +#define MCHP_GPIO_150 (8U) +#define MCHP_GPIO_151 (9U) +#define MCHP_GPIO_152 (10U) +#define MCHP_GPIO_153 (11U) +#define MCHP_GPIO_154 (12U) +#define MCHP_GPIO_155 (13U) +#define MCHP_GPIO_156 (14U) +#define MCHP_GPIO_157 (15U) +#define MCHP_GPIO_160 (16U) +#define MCHP_GPIO_161 (17U) +#define MCHP_GPIO_162 (18U) +#define MCHP_GPIO_163 (19U) +#define MCHP_GPIO_164 (20U) +#define MCHP_GPIO_165 (21U) +#define MCHP_GPIO_166 (22U) +#define MCHP_GPIO_167 (23U) +#define MCHP_GPIO_170 (24U) +#define MCHP_GPIO_171 (25U) +#define MCHP_GPIO_172 (26U) +#define MCHP_GPIO_173 (27U) +#define MCHP_GPIO_174 (28U) +#define MCHP_GPIO_175 (29U) +#define MCHP_GPIO_176 (30U) +/* End Port D */ + +/* Begin Port E */ +#define MCHP_GPIO_200 (0U) +#define MCHP_GPIO_201 (1U) +#define MCHP_GPIO_202 (2U) +#define MCHP_GPIO_203 (3U) +#define MCHP_GPIO_204 (4U) +#define MCHP_GPIO_205 (5U) +#define MCHP_GPIO_206 (6U) +#define MCHP_GPIO_207 (7U) +#define MCHP_GPIO_210 (8U) +#define MCHP_GPIO_211 (9U) +#define MCHP_GPIO_212 (10U) +#define MCHP_GPIO_213 (11U) +#define MCHP_GPIO_214 (12U) +#define MCHP_GPIO_215 (13U) +#define MCHP_GPIO_216 (14U) +#define MCHP_GPIO_217 (15U) +#define MCHP_GPIO_220 (16U) +#define MCHP_GPIO_221 (17U) +#define MCHP_GPIO_222 (18U) +#define MCHP_GPIO_223 (19U) +#define MCHP_GPIO_224 (20U) +#define MCHP_GPIO_225 (21U) +#define MCHP_GPIO_226 (22U) +#define MCHP_GPIO_227 (23U) +#define MCHP_GPIO_230 (24U) +#define MCHP_GPIO_231 (25U) +#define MCHP_GPIO_232 (26U) +#define MCHP_GPIO_233 (27U) +#define MCHP_GPIO_234 (28U) +#define MCHP_GPIO_235 (29U) +#define MCHP_GPIO_236 (30U) +/* End Port E */ + +/* Begin Port F */ +#define MCHP_GPIO_240 (0U) +#define MCHP_GPIO_241 (1U) +#define MCHP_GPIO_242 (2U) +#define MCHP_GPIO_243 (3U) +#define MCHP_GPIO_244 (4U) +#define MCHP_GPIO_245 (5U) +#define MCHP_GPIO_246 (6U) +#define MCHP_GPIO_247 (7U) +#define MCHP_GPIO_250 (8U) +#define MCHP_GPIO_251 (9U) +#define MCHP_GPIO_252 (10U) +#define MCHP_GPIO_253 (11U) +#define MCHP_GPIO_254 (12U) +/* End Port F */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SOC_MCHP_GPIOS_H_ */ diff --git a/soc/arm/microchip_mec/mec1501/Kconfig.defconfig.mec1501hsz b/soc/arm/microchip_mec/mec1501/Kconfig.defconfig.mec1501hsz index 0edecc265dd..02121ed54e1 100644 --- a/soc/arm/microchip_mec/mec1501/Kconfig.defconfig.mec1501hsz +++ b/soc/arm/microchip_mec/mec1501/Kconfig.defconfig.mec1501hsz @@ -22,6 +22,16 @@ config UART_NS16550 endif # SERIAL +config GPIO + default y + +if GPIO + +config GPIO_XEC + default y + +endif # GPIO + if I2C config I2C_XEC diff --git a/soc/arm/microchip_mec/mec1501/dts_fixup.h b/soc/arm/microchip_mec/mec1501/dts_fixup.h index a5d9ea12acf..4fc8fbb8abc 100644 --- a/soc/arm/microchip_mec/mec1501/dts_fixup.h +++ b/soc/arm/microchip_mec/mec1501/dts_fixup.h @@ -44,3 +44,39 @@ #define DT_UART_NS16550_PORT_2_IRQ DT_NS16550_400F2C00_IRQ_0 #define DT_UART_NS16550_PORT_2_IRQ_PRI DT_NS16550_2_IRQ_0_PRIORITY #define DT_UART_NS16550_PORT_2_IRQ_FLAGS 0 /* Default */ + +#define DT_GPIO_XEC_GPIO000_036_BASE_ADDR DT_MICROCHIP_XEC_GPIO_0_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO000_036_IRQ DT_MICROCHIP_XEC_GPIO_0_IRQ_0 +#define DT_GPIO_XEC_GPIO000_036_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_0_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO000_036_LABEL DT_MICROCHIP_XEC_GPIO_0_LABEL +#define DT_GPIO_XEC_GPIO000_036_SIZE DT_MICROCHIP_XEC_GPIO_0_SIZE + +#define DT_GPIO_XEC_GPIO040_076_BASE_ADDR DT_MICROCHIP_XEC_GPIO_1_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO040_076_IRQ DT_MICROCHIP_XEC_GPIO_1_IRQ_0 +#define DT_GPIO_XEC_GPIO040_076_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_1_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO040_076_LABEL DT_MICROCHIP_XEC_GPIO_1_LABEL +#define DT_GPIO_XEC_GPIO040_076_SIZE DT_MICROCHIP_XEC_GPIO_1_SIZE + +#define DT_GPIO_XEC_GPIO100_136_BASE_ADDR DT_MICROCHIP_XEC_GPIO_2_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO100_136_IRQ DT_MICROCHIP_XEC_GPIO_2_IRQ_0 +#define DT_GPIO_XEC_GPIO100_136_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_2_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO100_136_LABEL DT_MICROCHIP_XEC_GPIO_2_LABEL +#define DT_GPIO_XEC_GPIO100_136_SIZE DT_MICROCHIP_XEC_GPIO_2_SIZE + +#define DT_GPIO_XEC_GPIO140_176_BASE_ADDR DT_MICROCHIP_XEC_GPIO_3_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO140_176_IRQ DT_MICROCHIP_XEC_GPIO_3_IRQ_0 +#define DT_GPIO_XEC_GPIO140_176_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_3_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO140_176_LABEL DT_MICROCHIP_XEC_GPIO_3_LABEL +#define DT_GPIO_XEC_GPIO140_176_SIZE DT_MICROCHIP_XEC_GPIO_3_SIZE + +#define DT_GPIO_XEC_GPIO200_236_BASE_ADDR DT_MICROCHIP_XEC_GPIO_4_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO200_236_IRQ DT_MICROCHIP_XEC_GPIO_4_IRQ_0 +#define DT_GPIO_XEC_GPIO200_236_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_4_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO200_236_LABEL DT_MICROCHIP_XEC_GPIO_4_LABEL +#define DT_GPIO_XEC_GPIO200_236_SIZE DT_MICROCHIP_XEC_GPIO_4_SIZE + +#define DT_GPIO_XEC_GPIO240_276_BASE_ADDR DT_MICROCHIP_XEC_GPIO_5_BASE_ADDRESS +#define DT_GPIO_XEC_GPIO240_276_IRQ DT_MICROCHIP_XEC_GPIO_5_IRQ_0 +#define DT_GPIO_XEC_GPIO240_276_IRQ_PRIORITY DT_MICROCHIP_XEC_GPIO_5_IRQ_0_PRIORITY +#define DT_GPIO_XEC_GPIO240_276_LABEL DT_MICROCHIP_XEC_GPIO_5_LABEL +#define DT_GPIO_XEC_GPIO240_276_SIZE DT_MICROCHIP_XEC_GPIO_5_SIZE diff --git a/soc/arm/microchip_mec/mec1501/soc.h b/soc/arm/microchip_mec/mec1501/soc.h index f6e4132c98c..0922d50ec83 100644 --- a/soc/arm/microchip_mec/mec1501/soc.h +++ b/soc/arm/microchip_mec/mec1501/soc.h @@ -14,6 +14,8 @@ #include "MEC1501hsz.h" #include "regaccess.h" +#include "../common/soc_gpio.h" +#include "../common/soc_pins.h" #endif