From 4f6fa9746da0e1a4b9643325fa55e0056d1de304 Mon Sep 17 00:00:00 2001 From: Tyler Miller Date: Thu, 21 Dec 2023 15:16:48 +0100 Subject: bsp/tms570: Add TMS570LC4357 pin config support Update #4982. --- bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h | 44 ++++++-------------------- bsps/arm/tms570/include/bsp/tms570.h | 3 +- bsps/arm/tms570/start/pinmux.c | 4 +-- 3 files changed, 12 insertions(+), 39 deletions(-) (limited to 'bsps') diff --git a/bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h b/bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h index df56aa5f51..414110ff60 100644 --- a/bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h +++ b/bsps/arm/tms570/include/bsp/ti_herc/reg_iomm.h @@ -50,40 +50,7 @@ #define LIBBSP_ARM_TMS570_IOMM #include - -typedef struct{ - uint32_t PINMMR0; /*Pin Multiplexing Control Register 0*/ - uint32_t PINMMR1; /*Pin Multiplexing Control Register 1*/ - uint32_t PINMMR2; /*Pin Multiplexing Control Register 2*/ - uint32_t PINMMR3; /*Pin Multiplexing Control Register 3*/ - uint32_t PINMMR4; /*Pin Multiplexing Control Register 4*/ - uint32_t PINMMR5; /*Pin Multiplexing Control Register 5*/ - uint32_t PINMMR6; /*Pin Multiplexing Control Register 6*/ - uint32_t PINMMR7; /*Pin Multiplexing Control Register 7*/ - uint32_t PINMMR8; /*Pin Multiplexing Control Register 8*/ - uint32_t PINMMR9; /*Pin Multiplexing Control Register 9*/ - uint32_t PINMMR10; /*Pin Multiplexing Control Register 10*/ - uint32_t PINMMR11; /*Pin Multiplexing Control Register 11*/ - uint32_t PINMMR12; /*Pin Multiplexing Control Register 12*/ - uint32_t PINMMR13; /*Pin Multiplexing Control Register 13*/ - uint32_t PINMMR14; /*Pin Multiplexing Control Register 14*/ - uint32_t PINMMR15; /*Pin Multiplexing Control Register 15*/ - uint32_t PINMMR16; /*Pin Multiplexing Control Register 16*/ - uint32_t PINMMR17; /*Pin Multiplexing Control Register 17*/ - uint32_t PINMMR18; /*Pin Multiplexing Control Register 18*/ - uint32_t PINMMR19; /*Pin Multiplexing Control Register 19*/ - uint32_t PINMMR20; /*Pin Multiplexing Control Register 20*/ - uint32_t PINMMR21; /*Pin Multiplexing Control Register 21*/ - uint32_t PINMMR22; /*Pin Multiplexing Control Register 22*/ - uint32_t PINMMR23; /*Pin Multiplexing Control Register 23*/ - uint32_t PINMMR24; /*Pin Multiplexing Control Register 24*/ - uint32_t PINMMR25; /*Pin Multiplexing Control Register 25*/ - uint32_t PINMMR26; /*Pin Multiplexing Control Register 26*/ - uint32_t PINMMR27; /*Pin Multiplexing Control Register 27*/ - uint32_t PINMMR28; /*Pin Multiplexing Control Register 28*/ - uint32_t PINMMR29; /*Pin Multiplexing Control Register 29*/ - uint32_t PINMMR30; /*Pin Multiplexing Control Register 30*/ -} tms570_pinmux_t; +#include typedef struct{ uint32_t REVISION_REG; /*Revision Register*/ @@ -102,7 +69,14 @@ typedef struct{ uint32_t FAULT_STATUS_REG; /*Fault Status Register*/ uint32_t FAULT_CLEAR_REG; /*Fault Clear Register*/ uint8_t reserved5 [16]; - tms570_pinmux_t PINMUX; /*Pin Multiplexing Control Registers*/ +#if TMS570_VARIANT == 4357 + uint32_t PINMMR[180]; /* 0x110 - 1A4 : Output Pin Multiplexing Control + Registers (38 registers); 0x250 - 0x29C : Input Pin + Multiplexing Control Registers (20); 0X390 - 3DC : + Special Functionality Control Registers (20) */ +#else + uint32_t PINMMR[30]; /*Pin Multiplexing Control Register 0-30*/ +#endif } tms570_iomm_t; diff --git a/bsps/arm/tms570/include/bsp/tms570.h b/bsps/arm/tms570/include/bsp/tms570.h index 6518653553..c057664b9a 100644 --- a/bsps/arm/tms570/include/bsp/tms570.h +++ b/bsps/arm/tms570/include/bsp/tms570.h @@ -131,11 +131,10 @@ #endif #if TMS570_VARIANT == 4357 #define TMS570_IOMM (*(volatile tms570_iomm_t*)0xFFFF1C00) -#define TMS570_PINMUX (*(volatile tms570_pinmux_t*)0xFFFF1D10) #else #define TMS570_IOMM (*(volatile tms570_iomm_t*)0xFFFFEA00) -#define TMS570_PINMUX (*(volatile tms570_pinmux_t*)0xFFFFEB10) #endif +#define TMS570_PINMUX ((volatile uint32_t*)TMS570_IOMM.PINMMR) #define TMS570_LIN (*(volatile tms570_lin_t*)0xFFF7E400) #if TMS570_VARIANT == 4357 #define TMS570_LIN2 (*(volatile tms570_lin_t*)0xFFF7E600) diff --git a/bsps/arm/tms570/start/pinmux.c b/bsps/arm/tms570/start/pinmux.c index 9277a36431..16eb41a129 100644 --- a/bsps/arm/tms570/start/pinmux.c +++ b/bsps/arm/tms570/start/pinmux.c @@ -54,7 +54,7 @@ tms570_bsp_pin_to_pinmmrx(volatile uint32_t **pinmmrx, uint32_t *pin_shift, uint32_t config) { uint32_t pin_num = (config & TMS570_PIN_NUM_MASK) >> TMS570_PIN_NUM_SHIFT; - *pinmmrx = &TMS570_IOMM.PINMUX.PINMMR0 + (pin_num >> 2); + *pinmmrx = TMS570_PINMUX + (pin_num >> 2); *pin_shift = (pin_num & 0x3)*8; } @@ -178,7 +178,7 @@ tms570_bsp_pinmmr_config(const uint32_t *pinmmr_values, int reg_start, int reg_c tms570_pin_config_prepare(); - pinmmrx = (&TMS570_IOMM.PINMUX.PINMMR0) + reg_start; + pinmmrx = TMS570_PINMUX + reg_start; pval = pinmmr_values; cnt = reg_count; -- cgit v1.2.3