1 /** 2 * @file mxc_pins.h 3 * @brief This file contains constant pin configurations for the peripherals. 4 */ 5 6 /****************************************************************************** 7 * 8 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by 9 * Analog Devices, Inc.), 10 * Copyright (C) 2023-2024 Analog Devices, Inc. 11 * 12 * Licensed under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * http://www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an "AS IS" BASIS, 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 * 24 ******************************************************************************/ 25 26 #ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_PINS_H_ 27 #define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_PINS_H_ 28 29 #include "gpio.h" 30 31 // Pin mapping to use (i.e. UART0A, UART0B) 32 typedef enum { MAP_A, MAP_B } sys_map_t; 33 34 /***** Global Variables *****/ 35 // Predefined GPIO Configurations 36 extern const mxc_gpio_cfg_t gpio_cfg_extclk; 37 extern const mxc_gpio_cfg_t gpio_cfg_hfextclk; 38 extern const mxc_gpio_cfg_t gpio_cfg_lpextclk; 39 extern const mxc_gpio_cfg_t gpio_cfg_i2c0; 40 extern const mxc_gpio_cfg_t gpio_cfg_i2c1; 41 extern const mxc_gpio_cfg_t gpio_cfg_i2c2; 42 extern const mxc_gpio_cfg_t gpio_cfg_i2c2b; 43 extern const mxc_gpio_cfg_t gpio_cfg_i2c2c; 44 45 extern const mxc_gpio_cfg_t gpio_cfg_uart0; 46 extern const mxc_gpio_cfg_t gpio_cfg_uart0_flow; 47 extern const mxc_gpio_cfg_t gpio_cfg_uart0_flow_disable; 48 extern const mxc_gpio_cfg_t gpio_cfg_uart0b; 49 extern const mxc_gpio_cfg_t gpio_cfg_uart0b_flow; 50 extern const mxc_gpio_cfg_t gpio_cfg_uart0b_flow_disable; 51 extern const mxc_gpio_cfg_t gpio_cfg_uart1; 52 extern const mxc_gpio_cfg_t gpio_cfg_uart1_flow; 53 extern const mxc_gpio_cfg_t gpio_cfg_uart1_flow_disable; 54 extern const mxc_gpio_cfg_t gpio_cfg_uart1b; 55 extern const mxc_gpio_cfg_t gpio_cfg_uart1b_flow; 56 extern const mxc_gpio_cfg_t gpio_cfg_uart1b_flow_disable; 57 extern const mxc_gpio_cfg_t gpio_cfg_uart2; 58 extern const mxc_gpio_cfg_t gpio_cfg_uart2_flow; 59 extern const mxc_gpio_cfg_t gpio_cfg_uart2_flow_disable; 60 extern const mxc_gpio_cfg_t gpio_cfg_uart2b; 61 extern const mxc_gpio_cfg_t gpio_cfg_uart2b_flow; 62 extern const mxc_gpio_cfg_t gpio_cfg_uart2b_flow_disable; 63 extern const mxc_gpio_cfg_t gpio_cfg_uart3; 64 extern const mxc_gpio_cfg_t gpio_cfg_uart3_flow; 65 extern const mxc_gpio_cfg_t gpio_cfg_uart3_flow_disable; 66 67 extern const mxc_gpio_cfg_t gpio_cfg_spi0; 68 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ss0; 69 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ss1; 70 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ss2; 71 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ss3; 72 73 // NOTE: SPI1 definied here with SS1 only, SS0 is on port0 by itself. 74 extern const mxc_gpio_cfg_t gpio_cfg_spi1; 75 // NOTE: SPI2 defined here with SS0 only, and NOT SS1 and SS2 76 extern const mxc_gpio_cfg_t gpio_cfg_spi2; 77 extern const mxc_gpio_cfg_t gpio_cfg_spi2b; 78 // NOTE: SPI3 defined here with SS0 only, and NOT SS1, SS2, or SS3 79 extern const mxc_gpio_cfg_t gpio_cfg_spi3; 80 81 // Timers are only defined once, depending on package, each timer could be mapped to other pins 82 extern const mxc_gpio_cfg_t gpio_cfg_tmr0a; 83 extern const mxc_gpio_cfg_t gpio_cfg_tmr0b; 84 extern const mxc_gpio_cfg_t gpio_cfg_tmr0c; 85 extern const mxc_gpio_cfg_t gpio_cfg_tmr0d_in; 86 extern const mxc_gpio_cfg_t gpio_cfg_tmr0d_out; 87 88 extern const mxc_gpio_cfg_t gpio_cfg_tmr1a; 89 extern const mxc_gpio_cfg_t gpio_cfg_tmr1b; 90 extern const mxc_gpio_cfg_t gpio_cfg_tmr1c; 91 extern const mxc_gpio_cfg_t gpio_cfg_tmr1d; 92 93 extern const mxc_gpio_cfg_t gpio_cfg_tmr2a; 94 extern const mxc_gpio_cfg_t gpio_cfg_tmr2b; 95 extern const mxc_gpio_cfg_t gpio_cfg_tmr2c; 96 97 extern const mxc_gpio_cfg_t gpio_cfg_tmr3a; 98 extern const mxc_gpio_cfg_t gpio_cfg_tmr3b; 99 extern const mxc_gpio_cfg_t gpio_cfg_tmr3c; 100 extern const mxc_gpio_cfg_t gpio_cfg_tmr3d; 101 102 extern const mxc_gpio_cfg_t gpio_cfg_lptmr0; 103 extern const mxc_gpio_cfg_t gpio_cfg_lptmr1; 104 105 extern const mxc_gpio_cfg_t gpio_cfg_i2s0; 106 107 extern const mxc_gpio_cfg_t gpio_cfg_rtcsqw; 108 extern const mxc_gpio_cfg_t gpio_cfg_rtcsqwb; 109 110 extern const mxc_gpio_cfg_t gpio_cfg_qdec_in; 111 extern const mxc_gpio_cfg_t gpio_cfg_qdec_out; 112 113 extern const mxc_gpio_cfg_t gpio_cfg_lc1; 114 extern const mxc_gpio_cfg_t gpio_cfg_mon_lc1; 115 extern const mxc_gpio_cfg_t gpio_cfg_cmd_rs_lc1; 116 extern const mxc_gpio_cfg_t gpio_cfg_chrg_lc1; 117 extern const mxc_gpio_cfg_t gpio_cfg_lc2; 118 extern const mxc_gpio_cfg_t gpio_cfg_mon_lc2; 119 extern const mxc_gpio_cfg_t gpio_cfg_cmd_rs_lc2; 120 extern const mxc_gpio_cfg_t gpio_cfg_chrg_lc2; 121 122 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain0; 123 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain1; 124 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain2; 125 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain3; 126 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain4; 127 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain5; 128 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain6; 129 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain7; 130 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain8; 131 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain9; 132 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain10; 133 extern const mxc_gpio_cfg_t gpio_cfg_adc_ain11; 134 135 // SPI v2 Pin Definitions 136 extern const mxc_gpio_cfg_t gpio_cfg_spi0_standard; 137 extern const mxc_gpio_cfg_t gpio_cfg_spi0_3wire; 138 // MXC_SPI0 does not support Dual or Quad modes 139 extern const mxc_gpio_cfg_t gpio_cfg_spi1_standard; 140 extern const mxc_gpio_cfg_t gpio_cfg_spi1_3wire; 141 // MXC_SPI1 does not support Dual or Quad modes 142 extern const mxc_gpio_cfg_t gpio_cfg_spi2_standard; 143 extern const mxc_gpio_cfg_t gpio_cfg_spi2_3wire; 144 // MXC_SPI2 does not support Dual or Quad modes 145 146 // SPI v2 Target Selects Pin Definitions 147 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ts0; 148 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ts1; 149 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ts2; 150 extern const mxc_gpio_cfg_t gpio_cfg_spi0_ts3; 151 extern const mxc_gpio_cfg_t gpio_cfg_spi1_ts0; 152 extern const mxc_gpio_cfg_t gpio_cfg_spi2_ts0; 153 154 #endif // LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_MXC_PINS_H_ 155