arch/riscv/src/mpfs: Make cleaner pinmux configurations for USB

Mux USB IO pins one-by-one using package specific pinmux definitions. This avoids accidentally overwriting IO settings for other pins.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
Jukka Laitinen 2022-03-10 13:28:12 +02:00 committed by Petro Karashchenko
parent 5e15a3bce5
commit 81a19c1ce8
4 changed files with 28 additions and 102 deletions

View File

@ -81,6 +81,7 @@
/* Default EC configuration for all GPIOS */
#define MSSIO_EC_DEFAULT (0x0428 << GPIO_EC_SHIFT)
#define MSSIO_EC_USB_DEFAULT (0x0829 << GPIO_EC_SHIFT)
/* Basic GPIO definitions for MSSIO */
@ -130,6 +131,21 @@
#define MSSIO_GPIO_PAD36_E3 (GPIO_BANK1 | GPIO_PIN22 | MSSIO_AF_GPIO | MSSIO_EC_DEFAULT)
#define MSSIO_GPIO_PAD37_D4 (GPIO_BANK1 | GPIO_PIN23 | MSSIO_AF_GPIO | MSSIO_EC_DEFAULT)
/* USB pins */
#define MSSIO_USB_CLK (GPIO_BANK1 | GPIO_PIN0 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DIR (GPIO_BANK1 | GPIO_PIN1 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_NXT (GPIO_BANK1 | GPIO_PIN2 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_STP (GPIO_BANK1 | GPIO_PIN3 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA0 (GPIO_BANK1 | GPIO_PIN4 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA1 (GPIO_BANK1 | GPIO_PIN5 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA2 (GPIO_BANK1 | GPIO_PIN6 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA3 (GPIO_BANK1 | GPIO_PIN7 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA4 (GPIO_BANK1 | GPIO_PIN8 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA5 (GPIO_BANK1 | GPIO_PIN9 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA6 (GPIO_BANK1 | GPIO_PIN10 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#define MSSIO_USB_DATA7 (GPIO_BANK1 | GPIO_PIN11 | MSSIO_AF_USB | MSSIO_EC_USB_DEFAULT)
#endif
#endif /* __ARCH_RISCV_SRC_MPFS_HARDWARE_MPFS250T_484_PINMAP_H */

View File

@ -48,7 +48,6 @@
#include <nuttx/spinlock.h>
#include <arch/board/board.h>
#include <arch/board/board_liberodefs.h>
#include "hardware/mpfs_usb.h"
#include "riscv_arch.h"
@ -111,41 +110,6 @@
#define MPFS_PMPCFG_USB_2 (MPFS_MPUCFG_BASE + 0x610)
#define MPFS_PMPCFG_USB_3 (MPFS_MPUCFG_BASE + 0x618)
/* IOMUX registers */
#define MPFS_SYSREG_IOMUX3 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_IOMUX3_CR_OFFSET)
#define MPFS_SYSREG_IOMUX4 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_IOMUX4_CR_OFFSET)
#define MPFS_SYSREG_B2_CFG (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_CFG_CR)
#define MPFS_SYSREG_B2_0_1 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_0_1_CR_OFFSET)
#define MPFS_SYSREG_B2_2_3 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_2_3_CR_OFFSET)
#define MPFS_SYSREG_B2_4_5 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_4_5_CR_OFFSET)
#define MPFS_SYSREG_B2_6_7 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_6_7_CR_OFFSET)
#define MPFS_SYSREG_B2_8_9 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_8_9_CR_OFFSET)
#define MPFS_SYSREG_B2_10_11 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_10_11_CR_OFFSET)
#define MPFS_SYSREG_B2_12_13 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_12_13_CR_OFFSET)
#define MPFS_SYSREG_B2_14_15 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_14_15_CR_OFFSET)
#define MPFS_SYSREG_B2_16_17 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_16_17_CR_OFFSET)
#define MPFS_SYSREG_B2_18_19 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_18_19_CR_OFFSET)
#define MPFS_SYSREG_B2_20_21 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_20_21_CR_OFFSET)
#define MPFS_SYSREG_B2_22_23 (MPFS_SYSREG_BASE + \
MPFS_SYSREG_MSSIO_BANK2_IO_CFG_22_23_CR_OFFSET)
/* Reset and clock control registers */
#define MPFS_SYSREG_SOFT_RESET_CR (MPFS_SYSREG_BASE + \
@ -3353,30 +3317,18 @@ static int mpfs_pullup(struct usbdev_s *dev, bool enable)
static void mpfs_usb_iomux(void)
{
putreg32(LIBERO_SETTING_IOMUX3_CR, MPFS_SYSREG_IOMUX3);
putreg32(LIBERO_SETTING_IOMUX4_CR, MPFS_SYSREG_IOMUX4);
putreg32(LIBERO_SETTING_MSSIO_BANK2_CFG_CR, MPFS_SYSREG_B2_CFG);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_0_1_CR, MPFS_SYSREG_B2_0_1);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_2_3_CR, MPFS_SYSREG_B2_2_3);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_4_5_CR, MPFS_SYSREG_B2_4_5);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_6_7_CR, MPFS_SYSREG_B2_6_7);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_8_9_CR, MPFS_SYSREG_B2_8_9);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_10_11_CR,
MPFS_SYSREG_B2_10_11);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_12_13_CR,
MPFS_SYSREG_B2_12_13);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_14_15_CR,
MPFS_SYSREG_B2_14_15);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_16_17_CR,
MPFS_SYSREG_B2_16_17);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_18_19_CR,
MPFS_SYSREG_B2_18_19);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_20_21_CR,
MPFS_SYSREG_B2_20_21);
putreg32(LIBERO_SETTING_MSSIO_BANK2_IO_CFG_22_23_CR,
MPFS_SYSREG_B2_22_23);
mpfs_configgpio(MSSIO_USB_CLK);
mpfs_configgpio(MSSIO_USB_DIR);
mpfs_configgpio(MSSIO_USB_NXT);
mpfs_configgpio(MSSIO_USB_STP);
mpfs_configgpio(MSSIO_USB_DATA0);
mpfs_configgpio(MSSIO_USB_DATA1);
mpfs_configgpio(MSSIO_USB_DATA2);
mpfs_configgpio(MSSIO_USB_DATA3);
mpfs_configgpio(MSSIO_USB_DATA4);
mpfs_configgpio(MSSIO_USB_DATA5);
mpfs_configgpio(MSSIO_USB_DATA6);
mpfs_configgpio(MSSIO_USB_DATA7);
#ifdef CONFIG_USBDEV_DMA
/* DMA operations need to open the USB PMP registers for proper

View File

@ -614,25 +614,4 @@
#define LIBERO_SETTING_L2_SHUTDOWN_CR 0x00000000
#define LIBERO_SETTING_WAY_ENABLE 0x0000000b
/* IOMUX3 and IOMUX4, 0x4 signifies USB */
#define LIBERO_SETTING_IOMUX3_CR 0x44444444
#define LIBERO_SETTING_IOMUX4_CR 0x88cc4444
#define LIBERO_SETTING_MSSIO_BANK2_CFG_CR 0x00080907
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_0_1_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_2_3_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_4_5_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_6_7_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_8_9_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_10_11_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_12_13_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_14_15_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_16_17_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_18_19_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_20_21_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_22_23_CR 0x08290829
#define LIBERO_SETTING_MSSIO_VB2_CFG 0x00000828
#define LIBERO_SETTING_MSSIO_VB4_CFG 0x00000828
#endif /* __BOARDS_RISCV_MPFS_ICICLE_INCLUDE_BOARD_LIBERODEFS_H */

View File

@ -610,25 +610,4 @@
#define LIBERO_SETTING_L2_SHUTDOWN_CR 0x00000000
#define LIBERO_SETTING_WAY_ENABLE 0x0000000b
/* IOMUX3 and IOMUX4, 0x4 signifies USB */
#define LIBERO_SETTING_IOMUX3_CR 0x44444444
#define LIBERO_SETTING_IOMUX4_CR 0x88cc4444
#define LIBERO_SETTING_MSSIO_BANK2_CFG_CR 0x00080907
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_0_1_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_2_3_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_4_5_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_6_7_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_8_9_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_10_11_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_12_13_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_14_15_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_16_17_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_18_19_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_20_21_CR 0x08290829
#define LIBERO_SETTING_MSSIO_BANK2_IO_CFG_22_23_CR 0x08290829
#define LIBERO_SETTING_MSSIO_VB2_CFG 0x00000828
#define LIBERO_SETTING_MSSIO_VB4_CFG 0x00000828
#endif /* __BOARDS_RISCV_MPFS_M100PFSEVP_INCLUDE_BOARD_LIBERODEFS_H */