 8e143fc962
			
		
	
	8e143fc962
	
	
	
		
			
			This adds source files that allow to run TinyUSB stack on DA1469x-dk-pro board. Source files .c .S and .ld are taken from Apache Mynewt repository. Those files were stripped to allow starting board without Mynewt os.
		
			
				
	
	
		
			166 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Licensed to the Apache Software Foundation (ASF) under one
 | |
|  * or more contributor license agreements.  See the NOTICE file
 | |
|  * distributed with this work for additional information
 | |
|  * regarding copyright ownership.  The ASF licenses this file
 | |
|  * to you under the Apache License, Version 2.0 (the
 | |
|  * "License"); you may not use this file except in compliance
 | |
|  * with the License.  You may obtain a copy of the License at
 | |
|  *
 | |
|  *  http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing,
 | |
|  * software distributed under the License is distributed on an
 | |
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
|  * KIND, either express or implied.  See the License for the
 | |
|  * specific language governing permissions and limitations
 | |
|  * under the License.
 | |
|  */
 | |
| 
 | |
| #ifndef __MCU_MCU_H_
 | |
| #define __MCU_MCU_H_
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include "DA1469xAB.h"
 | |
| 
 | |
| #define sec_text_ram_core   __attribute__((section(".text_ram"))) __attribute__((noinline))
 | |
| 
 | |
| #define MCU_SYSVIEW_INTERRUPTS \
 | |
|     "I#1=Reset,I#2=MNI,I#3=HardFault,I#4=MemoryMgmt,I#5=BusFault,I#6=UsageFault," \
 | |
|     "I#7=SecureFault,I#11=SVCall,I#12=DebugMonitor,I#14=PendSV,I#15=SysTick," \
 | |
|     "I#16=SENSOR_NODE,I#17=DMA,I#18=CHARGER_STATE,I#19=CHARGER_ERROR," \
 | |
|     "I#20=CMAC2SYS,I#21=UART,I#22=UART2,I#23=UART3,I#24=I2C,I#25=I2C2,I#26=SPI," \
 | |
|     "I#27=SPI2,I#28=PCM,I#29=SRC_IN,I#30=SRC_OUT,I#31=USB,I#32=TIMER," \
 | |
|     "I#33=TIMER2,I#34=RTC,I#35=KEY_WKUP_GPIO,I#36=PDC,I#37=VBUS,I#38=MRM," \
 | |
|     "I#39=MOTOR_CONTROLLER,I#40=TRNG,I#41=DCDC,I#42=XTAL32M_RDY,I#43=ADC," \
 | |
|     "I#44=ADC2,I#45=CRYPTO,I#46=CAPTIMER1,I#47=RFDIAG,I#48=LCD_CONTROLLER," \
 | |
|     "I#49=PLL_LOCK,I#50=TIMER3,I#51=TIMER4,I#52=LRA,I#53=RTC_EVENT," \
 | |
|     "I#54=GPIO_P0,I#55=GPIO_P1"
 | |
| 
 | |
| /**
 | |
| * \brief GPIO function
 | |
| *
 | |
| */
 | |
| typedef enum {
 | |
|     MCU_GPIO_FUNC_GPIO = 0,                  /**< GPIO */
 | |
|     MCU_GPIO_FUNC_UART_RX = 1,               /**< GPIO as UART RX */
 | |
|     MCU_GPIO_FUNC_UART_TX = 2,               /**< GPIO as UART TX */
 | |
|     MCU_GPIO_FUNC_UART2_RX = 3,              /**< GPIO as UART2 RX */
 | |
|     MCU_GPIO_FUNC_UART2_TX = 4,              /**< GPIO as UART2 TX */
 | |
|     MCU_GPIO_FUNC_UART2_CTSN = 5,            /**< GPIO as UART2 CTSN */
 | |
|     MCU_GPIO_FUNC_UART2_RTSN = 6,            /**< GPIO as UART2 RTSN */
 | |
|     MCU_GPIO_FUNC_UART3_RX = 7,              /**< GPIO as UART3 RX */
 | |
|     MCU_GPIO_FUNC_UART3_TX = 8,              /**< GPIO as UART3 TX */
 | |
|     MCU_GPIO_FUNC_UART3_CTSN = 9,            /**< GPIO as UART3 CTSN */
 | |
|     MCU_GPIO_FUNC_UART3_RTSN = 10,           /**< GPIO as UART3 RTSN */
 | |
|     MCU_GPIO_FUNC_ISO_CLK = 11,              /**< GPIO as ISO CLK */
 | |
|     MCU_GPIO_FUNC_ISO_DATA = 12,             /**< GPIO as ISO DATA */
 | |
|     MCU_GPIO_FUNC_SPI_DI = 13,               /**< GPIO as SPI DI */
 | |
|     MCU_GPIO_FUNC_SPI_DO = 14,               /**< GPIO as SPI DO */
 | |
|     MCU_GPIO_FUNC_SPI_CLK = 15,              /**< GPIO as SPI CLK */
 | |
|     MCU_GPIO_FUNC_SPI_EN = 16,               /**< GPIO as SPI EN */
 | |
|     MCU_GPIO_FUNC_SPI2_DI = 17,              /**< GPIO as SPI2 DI */
 | |
|     MCU_GPIO_FUNC_SPI2_DO = 18,              /**< GPIO as SPI2 DO */
 | |
|     MCU_GPIO_FUNC_SPI2_CLK = 19,             /**< GPIO as SPI2 CLK */
 | |
|     MCU_GPIO_FUNC_SPI2_EN = 20,              /**< GPIO as SPI2 EN */
 | |
|     MCU_GPIO_FUNC_I2C_SCL = 21,              /**< GPIO as I2C SCL */
 | |
|     MCU_GPIO_FUNC_I2C_SDA = 22,              /**< GPIO as I2C SDA */
 | |
|     MCU_GPIO_FUNC_I2C2_SCL = 23,             /**< GPIO as I2C2 SCL */
 | |
|     MCU_GPIO_FUNC_I2C2_SDA = 24,             /**< GPIO as I2C2 SDA */
 | |
|     MCU_GPIO_FUNC_USB_SOF = 25,              /**< GPIO as USB SOF */
 | |
|     MCU_GPIO_FUNC_ADC = 26,                  /**< GPIO as ADC (dedicated pin) */
 | |
|     MCU_GPIO_FUNC_USB = 27,                  /**< GPIO as USB */
 | |
|     MCU_GPIO_FUNC_PCM_DI = 28,               /**< GPIO as PCM DI */
 | |
|     MCU_GPIO_FUNC_PCM_DO = 29,               /**< GPIO as PCM DO */
 | |
|     MCU_GPIO_FUNC_PCM_FSC = 30,              /**< GPIO as PCM FSC */
 | |
|     MCU_GPIO_FUNC_PCM_CLK = 31,              /**< GPIO as PCM CLK */
 | |
|     MCU_GPIO_FUNC_PDM_DATA = 32,             /**< GPIO as PDM DATA */
 | |
|     MCU_GPIO_FUNC_PDM_CLK = 33,              /**< GPIO as PDM CLK */
 | |
|     MCU_GPIO_FUNC_COEX_EXT_ACT = 34,         /**< GPIO as COEX EXT ACT0 */
 | |
|     MCU_GPIO_FUNC_COEX_SMART_ACT = 35,       /**< GPIO as COEX SMART ACT */
 | |
|     MCU_GPIO_FUNC_COEX_SMART_PRI = 36,       /**< GPIO as COEX SMART PRI */
 | |
|     MCU_GPIO_FUNC_PORT0_DCF = 37,            /**< GPIO as PORT0 DCF */
 | |
|     MCU_GPIO_FUNC_PORT1_DCF = 38,            /**< GPIO as PORT1 DCF */
 | |
|     MCU_GPIO_FUNC_PORT2_DCF = 39,            /**< GPIO as PORT2 DCF */
 | |
|     MCU_GPIO_FUNC_PORT3_DCF = 40,            /**< GPIO as PORT3 DCF */
 | |
|     MCU_GPIO_FUNC_PORT4_DCF = 41,            /**< GPIO as PORT4 DCF */
 | |
|     MCU_GPIO_FUNC_CLOCK = 42,                /**< GPIO as CLOCK */
 | |
|     MCU_GPIO_FUNC_PG = 43,                   /**< GPIO as PG */
 | |
|     MCU_GPIO_FUNC_LCD = 44,                  /**< GPIO as LCD */
 | |
|     MCU_GPIO_FUNC_LCD_SPI_DC = 45,           /**< GPIO as LCD SPI DC */
 | |
|     MCU_GPIO_FUNC_LCD_SPI_DO = 46,           /**< GPIO as LCD SPI DO */
 | |
|     MCU_GPIO_FUNC_LCD_SPI_CLK = 47,          /**< GPIO as LCD SPI CLK */
 | |
|     MCU_GPIO_FUNC_LCD_SPI_EN = 48,           /**< GPIO as LCD SPI EN */
 | |
|     MCU_GPIO_FUNC_TIM_PWM = 49,              /**< GPIO as TIM PWM */
 | |
|     MCU_GPIO_FUNC_TIM2_PWM = 50,             /**< GPIO as TIM2 PWM */
 | |
|     MCU_GPIO_FUNC_TIM_1SHOT = 51,            /**< GPIO as TIM 1SHOT */
 | |
|     MCU_GPIO_FUNC_TIM2_1SHOT = 52,           /**< GPIO as TIM2 1SHOT */
 | |
|     MCU_GPIO_FUNC_TIM3_PWM = 53,             /**< GPIO as TIM3 PWM */
 | |
|     MCU_GPIO_FUNC_TIM4_PWM = 54,             /**< GPIO as TIM4 PWM */
 | |
|     MCU_GPIO_FUNC_AGC_EXT = 55,              /**< GPIO as AGC EXT */
 | |
|     MCU_GPIO_FUNC_CMAC_DIAG0 = 56,           /**< GPIO as CMAC DIAG0 */
 | |
|     MCU_GPIO_FUNC_CMAC_DIAG1 = 57,           /**< GPIO as CMAC DIAG1 */
 | |
|     MCU_GPIO_FUNC_CMAC_DIAG2 = 58,           /**< GPIO as CMAC DIAG2 */
 | |
|     MCU_GPIO_FUNC_CMAC_DIAGX = 59,           /**< GPIO as CMAC DIAGX */
 | |
|     MCU_GPIO_FUNC_LAST,
 | |
| } mcu_gpio_func;
 | |
| 
 | |
| #define MCU_GPIO_MODE_INPUT                 0x000    /**< GPIO as an input */
 | |
| #define MCU_GPIO_MODE_INPUT_PULLUP          0x100    /**< GPIO as an input with pull-up */
 | |
| #define MCU_GPIO_MODE_INPUT_PULLDOWN        0x200    /**< GPIO as an input with pull-down */
 | |
| #define MCU_GPIO_MODE_OUTPUT                0x300    /**< GPIO as an output */
 | |
| #define MCU_GPIO_MODE_OUTPUT_OPEN_DRAIN     0x700    /**< GPIO as an open-drain output */
 | |
| 
 | |
| #define MCU_GPIO_PORT0_PIN_COUNT            32
 | |
| #define MCU_GPIO_PORT0(pin)		((0 * 32) + (pin))
 | |
| #define MCU_GPIO_PORT1(pin)		((1 * 32) + (pin))
 | |
| #define MCU_DMA_CHAN_MAX                    8
 | |
| 
 | |
| #define MCU_PIN_GPADC_SEL0               MCU_GPIO_PORT1(9)
 | |
| #define MCU_PIN_GPADC_SEL1               MCU_GPIO_PORT0(25)
 | |
| #define MCU_PIN_GPADC_SEL2               MCU_GPIO_PORT0(8)
 | |
| #define MCU_PIN_GPADC_SEL3               MCU_GPIO_PORT0(9)
 | |
| #define MCU_PIN_GPADC_SEL16              MCU_GPIO_PORT1(13)
 | |
| #define MCU_PIN_GPADC_SEL17              MCU_GPIO_PORT1(12)
 | |
| #define MCU_PIN_GPADC_SEL18              MCU_GPIO_PORT1(18)
 | |
| #define MCU_PIN_GPADC_SEL19              MCU_GPIO_PORT1(19)
 | |
| #define MCU_PIN_GPADC_DIFF0_P0           MCU_GPIO_PORT1(9)
 | |
| #define MCU_PIN_GPADC_DIFF0_P1           MCU_GPIO_PORT0(25)
 | |
| #define MCU_PIN_GPADC_DIFF1_P0           MCU_GPIO_PORT0(8)
 | |
| #define MCU_PIN_GPADC_DIFF1_P1           MCU_GPIO_PORT0(9)
 | |
| 
 | |
| #define MCU_PIN_SDADC0               MCU_GPIO_PORT1(9)
 | |
| #define MCU_PIN_SDADC1               MCU_GPIO_PORT0(25)
 | |
| #define MCU_PIN_SDADC2               MCU_GPIO_PORT0(8)
 | |
| #define MCU_PIN_SDADC3               MCU_GPIO_PORT0(9)
 | |
| #define MCU_PIN_SDADC4               MCU_GPIO_PORT1(14)
 | |
| #define MCU_PIN_SDADC5               MCU_GPIO_PORT1(20)
 | |
| #define MCU_PIN_SDADC6               MCU_GPIO_PORT1(21)
 | |
| #define MCU_PIN_SDADC7               MCU_GPIO_PORT1(22)
 | |
| 
 | |
| void mcu_gpio_set_pin_function(int pin, int mode, mcu_gpio_func func);
 | |
| void mcu_gpio_enter_sleep(void);
 | |
| void mcu_gpio_exit_sleep(void);
 | |
| 
 | |
| #define MCU_MEM_QSPIF_M_END_REMAP_ADDRESS (0x800000)
 | |
| #define MCU_MEM_QSPIF_M_START_ADDRESS   (0x16000000)
 | |
| #define MCU_MEM_QSPIF_M_END_ADDRESS     (0x18000000)
 | |
| #define MCU_MEM_SYSRAM_START_ADDRESS    (0x20000000)
 | |
| #define MCU_MEM_SYSRAM_END_ADDRESS      (0x20080000)
 | |
| 
 | |
| #define MCU_OTPM_BASE 0x30080000UL
 | |
| #define MCU_OTPM_SIZE 4096
 | |
| 
 | |
| /* Largest group id seen on a DA14699 was 18 so far */
 | |
| #define MCU_TRIMV_GROUP_ID_MAX          (18)
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __MCU_MCU_H_ */
 | |
| 
 |