diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/PeripheralPins.h b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/PeripheralPins.h index 9d4d30b4ed..cf3ad86085 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/PeripheralPins.h +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/PeripheralPins.h @@ -24,12 +24,31 @@ extern const PinMap PinMap_GPIO[]; /************PWM****************/ +#if DEVICE_PWMOUT extern const PinMap PinMap_PWM[]; +#endif /************UART***************/ +#if DEVICE_SERIAL extern const PinMap PinMap_UART_TX[]; extern const PinMap PinMap_UART_RX[]; -extern const PinMap PinMap_UART_CTS[]; +#if DEVICE_SERIAL_FC extern const PinMap PinMap_UART_RTS[]; +extern const PinMap PinMap_UART_CTS[]; +#endif +#endif + +/************ADC***************/ +#if DEVICE_ANALOGIN +extern const PinMap PinMap_ADC[]; +#endif + +/************SPI***************/ +#if DEVICE_SPI +extern const PinMap PinMap_SPI_MOSI[]; +extern const PinMap PinMap_SPI_MISO[]; +extern const PinMap PinMap_SPI_SCLK[]; +extern const PinMap PinMap_SPI_SSEL[]; +#endif #endif diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralNames.h b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralNames.h index a1cc02c639..97f72f739e 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralNames.h +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralNames.h @@ -43,6 +43,10 @@ typedef enum { PWM_6 } PWMName; +typedef enum { + GSPI = 0 +} SPIName; + #define STDIO_UART_TX USBTX #define STDIO_UART_RX USBRX #define STDIO_UART UART_0 diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralPins.c b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralPins.c index f2fa9cf76d..33a53adabe 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralPins.c +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/TARGET_CC3220SF_LAUNCHXL/PeripheralPins.c @@ -62,6 +62,7 @@ const PinMap PinMap_GPIO[] = { }; /************PWM***************/ +#if DEVICE_PWMOUT const PinMap PinMap_PWM[] = { {PIN_01, PWM_1, 3}, {PIN_02, PWM_2, 3}, @@ -69,9 +70,12 @@ const PinMap PinMap_PWM[] = { {PIN_19, PWM_4, 8}, {PIN_21, PWM_5, 9}, {PIN_64, PWM_6, 3}, + {NC, NC, 0} }; +#endif /************UART***************/ +#if DEVICE_SERIAL const PinMap PinMap_UART_TX[] = { {PIN_01, UART_1, 7}, {PIN_03, UART_0, 7}, @@ -97,7 +101,7 @@ const PinMap PinMap_UART_RX[] = { {PIN_59, UART_1, 6}, {NC, NC, 0} }; - +#if DEVICE_SERIAL_FC const PinMap PinMap_UART_RTS[] = { {PIN_50, UART_0, 3}, {PIN_50, UART_1, 10}, @@ -114,3 +118,42 @@ const PinMap PinMap_UART_CTS[] = { {PIN_61, UART_1, 3}, {NC, NC, 0} }; +#endif +#endif + +#if DEVICE_ANALOGIN +const PinMap PinMap_ADC[] = { + {PIN_57, ADC0_0, 0}, + {PIN_58, ADC0_1, 0}, + {PIN_59, ADC0_2, 0}, + {PIN_60, ADC0_3, 0}, + {NC, NC, 0} +}; +#endif + +#if DEVICE_SPI +/************SPI***************/ +const PinMap PinMap_SPI_SCLK[] = { + {PIN_05, GSPI, 7}, + {PIN_45, GSPI, 7}, + {NC, NC, 0} +}; + +const PinMap PinMap_SPI_MOSI[] = { + {PIN_07, GSPI, 7}, + {PIN_52, GSPI, 7}, + {NC, NC, 0} +}; + +const PinMap PinMap_SPI_MISO[] = { + {PIN_06, GSPI, 7}, + {PIN_53, GSPI, 7}, + {NC, NC, 0} +}; + +const PinMap PinMap_SPI_SSEL[] = { + {PIN_08, GSPI, 7}, + {PIN_50, GSPI, 7}, + {NC, NC, 0} +}; +#endif diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/analogin_api.c b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/analogin_api.c index 9368a8fa69..b754440c4f 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/analogin_api.c +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/analogin_api.c @@ -55,3 +55,7 @@ float analogin_read(analogin_t *obj) { return (float)value * (1.0f / (float)ADC_RESOLUTION); } +const PinMap *analogin_pinmap() +{ + return PinMap_ADC; +} diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/pwmout_api.c b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/pwmout_api.c index ea87b01067..bf345c5fb1 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/pwmout_api.c +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/pwmout_api.c @@ -179,3 +179,8 @@ void pwmout_pulsewidth_ms(pwmout_t* obj, int ms) { void pwmout_pulsewidth_us(pwmout_t* obj, int us) { } + +const PinMap *pwmout_pinmap() +{ + return PinMap_PWM; +} diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/serial_api.c b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/serial_api.c index de15b60cdf..4b2da425fb 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/serial_api.c +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/serial_api.c @@ -403,3 +403,35 @@ void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, Pi break; } } + +const PinMap *serial_tx_pinmap() +{ + return PinMap_UART_TX; +} + +const PinMap *serial_rx_pinmap() +{ + return PinMap_UART_RX; +} + +const PinMap *serial_cts_pinmap() +{ +#if !DEVICE_SERIAL_FC + static const PinMap PinMap_UART_CTS[] = { + {NC, NC, 0} + }; +#endif + + return PinMap_UART_CTS; +} + +const PinMap *serial_rts_pinmap() +{ +#if !DEVICE_SERIAL_FC + static const PinMap PinMap_UART_RTS[] = { + {NC, NC, 0} + }; +#endif + + return PinMap_UART_RTS; +} diff --git a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/spi_api.c b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/spi_api.c index 2f8d8e19f7..cdfc8ac922 100644 --- a/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/spi_api.c +++ b/targets/TARGET_TI/TARGET_CC32XX/TARGET_CC3220SF/spi_api.c @@ -25,6 +25,7 @@ #include "ti/devices/cc32xx/driverlib/rom_map.h" #include "ti/devices/cc32xx/driverlib/ti_spi_driverlib.h" #include "ti/devices/cc32xx/driverlib/prcm.h" +#include "PeripheralPins.h" #define PIN_MODE_SPI 7 #define SPI_WL_MASK 0xF80 @@ -56,6 +57,26 @@ static void spi_configure_driver_instance(spi_t *obj) } } +const PinMap *spi_master_mosi_pinmap() +{ + return PinMap_SPI_MOSI; +} + +const PinMap *spi_master_miso_pinmap() +{ + return PinMap_SPI_MISO; +} + +const PinMap *spi_master_clk_pinmap() +{ + return PinMap_SPI_SCLK; +} + +const PinMap *spi_master_cs_pinmap() +{ + return PinMap_SPI_SSEL; +} + /** Initialize the SPI peripheral * * Configures the pins used by SPI, sets a default format and frequency, and enables the peripheral diff --git a/targets/targets.json b/targets/targets.json index 51ed99def1..fe65817a8d 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -8782,17 +8782,18 @@ "CC32XX": { "inherits": ["TI"], "public": false, - "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], "release_versions": ["5"] }, "CC3220SF": { "inherits": ["CC32XX"], + "public": false, "macros": ["MBED_MPU_CUSTOM"], "core": "Cortex-M4", "device_name": "CC3220SF" }, "CC3220SF_LAUNCHXL": { "inherits": ["CC3220SF"], + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], "components_add": ["SD", "FLASHIAP"], "device_has": ["USTICKER", "SERIAL",