ckfwq/linux-3.0.4/arch/mips/include/asm/mach-loongson/gsc3280/gsc3280a_iomux.h

484 lines
12 KiB
C
Raw Normal View History

2024-12-30 10:53:50 +08:00
#ifndef _GSC3280A_IOMUX_H_
#define _GSC3280A_IOMUX_H_
#include <gsc3280/gsc3280_regs.h>
#define SYSCTL_IOMUX_USB 33
#define SYSCTL_IOMUX_JTAG 32
#define SYSCTL_IOMUX_EMI 31
#define SYSCTL_IOMUX_SPI1 30
#define SYSCTL_IOMUX_SPI0 29
#define SYSCTL_IOMUX_PWM 28
#define SYSCTL_IOMUX_PS2_1 27
#define SYSCTL_IOMUX_PS2_0 26
#define SYSCTL_IOMUX_I2S 25
#define SYSCTL_IOMUX_I2C 24
#define SYSCTL_IOMUX_KEYPAD 23
#define SYSCTL_IOMUX_MAC_RMII 22
#define SYSCTL_IOMUX_MAC_MII 21
#define SYSCTL_IOMUX_LCDC 20
#define SYSCTL_IOMUX_SCI1_1 19
#define SYSCTL_IOMUX_SCI1_0 18
#define SYSCTL_IOMUX_SCI0 17
#define SYSCTL_IOMUX_CAN_1 16
#define SYSCTL_IOMUX_CAN_0 15
#define SYSCTL_IOMUX_UART7 14
#define SYSCTL_IOMUX_UART6 13
#define SYSCTL_IOMUX_UART5_TXE1 12
#define SYSCTL_IOMUX_UART5_TXE0 11
#define SYSCTL_IOMUX_UART5 10
#define SYSCTL_IOMUX_UART4_1 9
#define SYSCTL_IOMUX_UART4_0 8
#define SYSCTL_IOMUX_UART3_1 7
#define SYSCTL_IOMUX_UART3_0 6
#define SYSCTL_IOMUX_UART2 5
#define SYSCTL_IOMUX_UART1 4
#define SYSCTL_IOMUX_UART0 3
#define SYSCTL_IOMUX_NFC 2
#define SYSCTL_IOMUX_SDIO 1
#define SYSCTL_IOMUX_CLKOUT 0
#define SYSCTL_IOMUX_MIN SYSCTL_IOMUX_CLKOUT
#define SYSCTL_IOMUX_MAX SYSCTL_IOMUX_USB
#if defined(CONFIG_MAC_RMII) && defined(CONFIG_MAC_MII)
#error mac PHY rmii & mii conflict.
#endif
#if defined(CONFIG_MAC_MII) && (defined(CONFIG_MAC_RMII) || defined(CONFIG_FB_GSC3280) || defined(EMI))
#error mii PHY & some of (rmii, lcdc, emi) conflict.
#endif
#if defined(CONFIG_MTD_NAND_GSC3280) && defined(EMI)
#error nand & emi io conflict.
#endif
#if defined(CONFIG_UART0) && (defined(CONFIG_CAN_1) || defined(CONFIG_UART5_TXE0) || defined(CONFIG_SCI1_0))
#error uart0 & (can1,uart5_txe0,sci) io conflict.
#endif
#if defined(CONFIG_UART1) && (defined(CONFIG_GSC3280_PWM) || defined(CONFIG_JTAG))
#error uart1 & (pwm,jtag) conflict;
#endif
#if defined(CONFIG_UART2) && defined(CONFIG_FB_GSC3280)
#error uart2 & lcdc conflict.
#endif
#if defined(CONFIG_UART3_0) && (defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART6) || defined(CONFIG_UART3_1))
#error uart3_0 & (sdio(mmc),uart6) conflict.
#endif
#if defined(CONFIG_UART3_1) && (defined(CONFIG_SCI0/*SCI0*/) || defined(CONFIG_FB_GSC3280) || defined(CONFIG_KEYPAD_GSC3280) || defined(CONFIG_UART3_0) || defined(CONFIG_DISTANCE_SENSOR))
#error uart3_1 & (sci,lcdc,keypad) confict.
#endif
#if defined(CONFIG_UART4_0) && (defined(CONFIG_UART6) || defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART4_1))
#error uart4_0 & (sdio,uart6) confict.
#endif
#if defined(CONFIG_UART4_1) && (defined(CONFIG_SCI0/*SCI0*/) || defined(CONFIG_FB_GSC3280) || defined(CONFIG_KEYPAD_GSC3280) || defined(CONFIG_UART4_0))
#error uart4_1 & (sci,lcdc,keypad) conflict.
#endif
#if defined(CONFIG_UART5_TXE0) && (defined(CONFIG_CAN_1) || defined(CONFIG_SCI1_0) || defined(CONFIG_UART5_TXE1))
#error uart5_txe0 & (can,sci,uart5_txe1) conflict.
#endif
#if defined(CONFIG_UART5_TXE1) && (defined(EMI) || defined(CONFIG_SCI1_0) || defined(CONFIG_UART5_TXE0))
#error uart5_txe1 & (emi,sci,uart5_txe0) conflict.
#endif
#if defined(CONFIG_UART6) && (defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART3_0) || defined(CONFIG_CAN_0))
#error uart6 & (sdio,uart3_0,can_0) conflict.
#endif
#if defined(CONFIG_UART7) && defined(CONFIG_FB_GSC3280)
#error uart7 & lcdc conflict.
#endif
#if defined(CONFIG_CAN_0) && (defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART6) || defined(CONFIG_CAN_1))
#error can_0 & (sdio(mmc),uart6) conflict.
#endif
#if defined(CONFIG_CAN_1) && (defined(CONFIG_UART0) || defined(CONFIG_UART5_TXE0) || defined(CONFIG_SCI1_0) || defined(CONFIG_CAN_0))
#error can_1 & (uart0,uart5_txe0,sci1_0) conflict.
#endif
#ifdef SCI_USE_JTMS_AS_HOTPLUG
#if defined(CONFIG_SCI0) && (defined(CONFIG_KEYPAD_GSC3280) || defined(EMI) || defined(CONFIG_UART4_1) || defined(CONFIG_UART3_1) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_JTAG) || defined(CONFIG_DISTANCE_SENSOR))
#error sci0 & (keypad, emi, uart4, uart3_1, pwm, jtag) conflict.
#endif
#if defined(CONFIG_SCI1_0) && (defined(CONFIG_CAN_1) || defined(CONFIG_UART0) || defined(CONFIG_UART5_TXE0) || defined(CONFIG_UART5_TXE1) || defined(CONFIG_GSC3280_SOC_I2S) || defined(CONFIG_SCI1_1) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_JTAG))
#error sci1_0 & (can_1,uart0,uart5,i2s,sci1_1, pwm, jtag) conflict.
#endif
#if defined(CONFIG_SCI1_1) && (defined(CONFIG_FB_GSC3280) || defined(CONFIG_GSC3280_SOC_I2S) || defined(CONFIG_SCI1_0) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_JTAG))
#error sci1_1 & (lcdc,i2s,sci1_0, pwm, jtag) conflict.
#endif
#else
#if defined(CONFIG_SCI0) && (defined(CONFIG_KEYPAD_GSC3280) || defined(EMI) || defined(CONFIG_UART4_1) || defined(CONFIG_UART3_1) || defined(CONFIG_DISTANCE_SENSOR))
#error sci0 & (keypad, emi, uart4, uart3_1, pwm, jtag) conflict.
#endif
#if defined(CONFIG_SCI1_0) && (defined(CONFIG_CAN_1) || defined(CONFIG_UART0) || defined(CONFIG_UART5_TXE0) || defined(CONFIG_UART5_TXE1) || defined(CONFIG_GSC3280_SOC_I2S) || defined(CONFIG_SCI1_1))
#error sci1_0 & (can_1,uart0,uart5,i2s,sci1_1, pwm, jtag) conflict.
#endif
#if defined(CONFIG_SCI1_1) && (defined(CONFIG_FB_GSC3280) || defined(CONFIG_GSC3280_SOC_I2S) || defined(CONFIG_SCI1_0))
#error sci1_1 & (lcdc,i2s,sci1_0, pwm, jtag) conflict.
#endif
#endif
#if defined(CONFIG_FB_GSC3280) && (defined(CONFIG_UART2) || defined(CONFIG_UART3_1) || defined(CONFIG_UART4_1) || defined(CONFIG_UART7) || defined(CONFIG_SCI1_1) || defined(EMI) || defined(CONFIG_MAC_MII))
#error lcdc & (uart2,uart3_1,uart4_1,uart7,sci1_1,emi,mac_mii) conflict.
#endif
#if defined(CONFIG_KEYPAD_GSC3280) && (defined(CONFIG_SPI0) || defined(EMI) || defined(CONFIG_UART4_1) || defined(CONFIG_UART3_1) || defined(CONFIG_SCI0) || defined(CONFIG_DISTANCE_SENSOR))
#error keypad & (spi0,emi,uart4_1,uart3_1,sci0) conflict.
#endif
#if defined(CONFIG_GSC3280_SOC_I2S) && (defined(EMI) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_SCI1_0) || defined(CONFIG_SCI1_1))
#error i2s & (emi,pwm,sci1_0,sci1_1) conflict.
#endif
#if defined(CONFIG_PS2_0) && (defined(CONFIG_GSC3280_PWM) || defined(EMI))
#error ps2_0 & (pwm,emi) conflict.
#endif
#if defined(CONFIG_PS2_1) && (defined(CONFIG_GSC3280_PWM) || defined(EMI))
#error ps2_1 & (pwm,emi) conflict.
#endif
#ifdef SCI_USE_JTMS_AS_HOTPLUG
#if defined(CONFIG_GSC3280_PWM) && (defined(CONFIG_GSC3280_SOC_I2S) || defined(EMI) || defined(CONFIG_PS2_0) || defined(CONFIG_PS2_1) || defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART1) || defined(CONFIG_JTAG) || defined(CONFIG_SCI0) || defined(CONFIG_SCI1_0) || defined(CONFIG_SCI1_1))
#error pwm & (i2s,emi,ps2_0,ps2_1,sdio,uart1,jtag) conflict.
#endif
#else
#if defined(CONFIG_GSC3280_PWM) && (defined(CONFIG_GSC3280_SOC_I2S) || defined(EMI) || defined(CONFIG_PS2_0) || defined(CONFIG_PS2_1) || defined(CONFIG_MMC_GSC3280) || defined(CONFIG_UART1) || defined(CONFIG_JTAG))
#error pwm & (i2s,emi,ps2_0,ps2_1,sdio,uart1,jtag) conflict.
#endif
#endif
#if defined(CONFIG_SPI0) && (defined(CONFIG_KEYPAD_GSC3280) || defined(EMI))
#error spi0 & (keypad,emi) conflict.
#endif
#if defined(CONFIG_SPI1) && defined(EMI)
#error spi1 & emi conflict.
#endif
#if defined(EMI) && (defined(CONFIG_MTD_NAND_GSC3280) || defined(CONFIG_SPI0) || defined(CONFIG_SPI1) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_GSC3280_SOC_I2S) || defined(CONFIG_FB_GSC3280) || defined(CONFIG_MAC_RMII) || defined(CONFIG_MAC_MII) || defined(CONFIG_SCI0) || defined(CONFIG_UART5_TXE1) || defined(CONFIG_KEYPAD_GSC3280))
#error emi & (nand,spi0,spi1,pwm,i2s,lcdc,mac_rmii,mac_mii,sci0,uart5_txe1,usb,keypad) conflict.
#endif
#ifdef SCI_USE_JTMS_AS_HOTPLUG
#if defined(CONFIG_JTAG) && (defined(CONFIG_UART1) || defined(CONFIG_GSC3280_PWM) || defined(CONFIG_SCI0) || defined(CONFIG_SCI1_0) || defined(CONFIG_SCI1_1))
#error jtag & (uart1,pwm,sci) conflict.
#endif
#else
#if defined(CONFIG_JTAG) && (defined(CONFIG_UART1) || defined(CONFIG_GSC3280_PWM))
#error jtag & (uart1,pwm) conflict.
#endif
#endif
static char iomux_tab[][16] = {
{SYSCTL_IOMUX_CLKOUT,
-1,
-1,
-1,
},
{SYSCTL_IOMUX_SDIO,
-1,
-1,
SYSCTL_IOMUX_UART6,
SYSCTL_IOMUX_UART3_0,
SYSCTL_IOMUX_UART4_0,
SYSCTL_IOMUX_CAN_0,
SYSCTL_IOMUX_PWM,
-1,
},
{SYSCTL_IOMUX_NFC,
-1,
-1,
SYSCTL_IOMUX_EMI,
-1,
},
{SYSCTL_IOMUX_UART0,
-1,
-1,
SYSCTL_IOMUX_CAN_1,
SYSCTL_IOMUX_UART5_TXE0,
SYSCTL_IOMUX_SCI1_0,
-1,
},
{SYSCTL_IOMUX_UART1,
-1,
-1,
SYSCTL_IOMUX_PWM,
SYSCTL_IOMUX_JTAG,
-1,
},
{SYSCTL_IOMUX_UART2,
-1,
-1,
SYSCTL_IOMUX_LCDC,
-1,
},
{SYSCTL_IOMUX_UART3_0,
-1,
-1,
SYSCTL_IOMUX_SDIO,
SYSCTL_IOMUX_UART6,
-1,
},
{SYSCTL_IOMUX_UART3_1,
-1,
-1,
SYSCTL_IOMUX_SCI0,
SYSCTL_IOMUX_LCDC,
SYSCTL_IOMUX_KEYPAD,
-1,
},
{SYSCTL_IOMUX_UART4_0,
-1,
-1,
SYSCTL_IOMUX_UART6,
SYSCTL_IOMUX_SDIO,
-1,
},
{SYSCTL_IOMUX_UART4_1,
-1,
-1,
SYSCTL_IOMUX_SCI0,
SYSCTL_IOMUX_LCDC,
SYSCTL_IOMUX_KEYPAD,
-1,
},
{-1,/*SYSCTL_IOMUX_UART5*/
},
{SYSCTL_IOMUX_UART5_TXE0,
SYSCTL_IOMUX_UART5,
-1,
SYSCTL_IOMUX_CAN_1,
SYSCTL_IOMUX_UART0,
SYSCTL_IOMUX_SCI1_0,
-1,
},
{SYSCTL_IOMUX_UART5_TXE1,
SYSCTL_IOMUX_UART5,
-1,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_SCI1_0,
-1,
},
{SYSCTL_IOMUX_UART6,
-1,
-1,
SYSCTL_IOMUX_SDIO,
SYSCTL_IOMUX_UART3_0,
SYSCTL_IOMUX_CAN_0,
-1,
},
{SYSCTL_IOMUX_UART7,
-1,
-1,
SYSCTL_IOMUX_LCDC,
-1,
},
{SYSCTL_IOMUX_CAN_0,
-1,
-1,
SYSCTL_IOMUX_SDIO,
SYSCTL_IOMUX_UART6,
-1,
},
{SYSCTL_IOMUX_CAN_1,
-1,
-1,
SYSCTL_IOMUX_UART0,
SYSCTL_IOMUX_UART5_TXE0,
SYSCTL_IOMUX_SCI1_0,
-1,
},
{SYSCTL_IOMUX_SCI0,
-1,
-1,
SYSCTL_IOMUX_KEYPAD,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_UART4_1,
SYSCTL_IOMUX_UART3_1,
#ifdef SCI_USE_JTMS_AS_HOTPLUG
SYSCTL_IOMUX_JTAG,
SYSCTL_IOMUX_PWM,
#endif
-1,
},
{SYSCTL_IOMUX_SCI1_0,
-1,
-1,
SYSCTL_IOMUX_CAN_1,
SYSCTL_IOMUX_UART0,
SYSCTL_IOMUX_UART5,
SYSCTL_IOMUX_I2S,
#ifdef SCI_USE_JTMS_AS_HOTPLUG
SYSCTL_IOMUX_JTAG,
SYSCTL_IOMUX_PWM,
#endif
-1,
},
{SYSCTL_IOMUX_SCI1_1,
-1,
-1,
SYSCTL_IOMUX_LCDC,
SYSCTL_IOMUX_I2S,
#ifdef SCI_USE_JTMS_AS_HOTPLUG
SYSCTL_IOMUX_JTAG,
SYSCTL_IOMUX_PWM,
#endif
-1,
},
{SYSCTL_IOMUX_LCDC,
-1,
-1,
SYSCTL_IOMUX_UART2,
SYSCTL_IOMUX_UART3_1,
SYSCTL_IOMUX_UART4_1,
SYSCTL_IOMUX_UART7,
SYSCTL_IOMUX_SCI1_1,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_MAC_MII,
-1,
},
{SYSCTL_IOMUX_MAC_MII,
-1,
-1,
SYSCTL_IOMUX_LCDC,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_MAC_RMII,
-1,
},
{SYSCTL_IOMUX_MAC_RMII,
-1,
-1,
SYSCTL_IOMUX_MAC_MII,
-1,
},
{SYSCTL_IOMUX_KEYPAD,
-1,
-1,
SYSCTL_IOMUX_SPI0,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_UART4_1,
SYSCTL_IOMUX_UART3_1,
SYSCTL_IOMUX_SCI0,
-1,
},
{SYSCTL_IOMUX_I2C,
-1,
-1,
-1,
},
{SYSCTL_IOMUX_I2S,
-1,
-1,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_PWM,
SYSCTL_IOMUX_SCI1_0,
SYSCTL_IOMUX_SCI1_1,
-1,
},
{SYSCTL_IOMUX_PS2_0,
-1,
-1,
SYSCTL_IOMUX_PWM,
SYSCTL_IOMUX_EMI,
-1,
},
{SYSCTL_IOMUX_PS2_1,
-1,
-1,
SYSCTL_IOMUX_PWM,
SYSCTL_IOMUX_EMI,
-1,
},
{SYSCTL_IOMUX_PWM,
-1,
-1,
SYSCTL_IOMUX_I2S,
SYSCTL_IOMUX_EMI,
SYSCTL_IOMUX_PS2_0,
SYSCTL_IOMUX_PS2_1,
SYSCTL_IOMUX_SDIO,
SYSCTL_IOMUX_UART1,
SYSCTL_IOMUX_JTAG,
#ifdef SCI_USE_JTMS_AS_HOTPLUG
SYSCTL_IOMUX_SCI0,
SYSCTL_IOMUX_SCI1_0,
SYSCTL_IOMUX_SCI1_1,
#endif
-1,
},
{SYSCTL_IOMUX_SPI0,
-1,
-1,
SYSCTL_IOMUX_KEYPAD,
SYSCTL_IOMUX_EMI,
-1,
},
{SYSCTL_IOMUX_SPI1,
-1,
-1,
SYSCTL_IOMUX_EMI,
-1,
},
{SYSCTL_IOMUX_EMI,
-1,
-1,
SYSCTL_IOMUX_NFC,
SYSCTL_IOMUX_SPI0,
SYSCTL_IOMUX_SPI1,
SYSCTL_IOMUX_PWM,
SYSCTL_IOMUX_I2S,
SYSCTL_IOMUX_LCDC,
SYSCTL_IOMUX_MAC_RMII,
SYSCTL_IOMUX_MAC_MII,
SYSCTL_IOMUX_SCI0,
SYSCTL_IOMUX_UART5_TXE1,
SYSCTL_IOMUX_KEYPAD,
-1,
},
{SYSCTL_IOMUX_JTAG,
-1,
-1,
SYSCTL_IOMUX_UART1,
SYSCTL_IOMUX_PWM,
#ifdef SCI_USE_JTMS_AS_HOTPLUG
SYSCTL_IOMUX_SCI0,
SYSCTL_IOMUX_SCI1_0,
SYSCTL_IOMUX_SCI1_1,
#endif
-1,
},
{SYSCTL_IOMUX_USB,
-1,
-1,
-1,
},
};
#endif