0001
0002 #ifndef __ARCH_DOVE_MPP_CODED_H
0003 #define __ARCH_DOVE_MPP_CODED_H
0004
0005 #define MPP(_num, _sel, _in, _out) ( \
0006 ((_num) & 0xff) | \
0007 (((_sel) & 0xf) << 8) | \
0008 ((!!(_in)) << 12) | \
0009 ((!!(_out)) << 13))
0010
0011 #define MPP0_GPIO0 MPP(0, 0x0, 1, 1)
0012 #define MPP0_UA2_RTSn MPP(0, 0x2, 0, 0)
0013 #define MPP0_SDIO0_CD MPP(0, 0x3, 0, 0)
0014 #define MPP0_LCD0_PWM MPP(0, 0xf, 0, 0)
0015
0016 #define MPP1_GPIO1 MPP(1, 0x0, 1, 1)
0017 #define MPP1_UA2_CTSn MPP(1, 0x2, 0, 0)
0018 #define MPP1_SDIO0_WP MPP(1, 0x3, 0, 0)
0019 #define MPP1_LCD1_PWM MPP(1, 0xf, 0, 0)
0020
0021 #define MPP2_GPIO2 MPP(2, 0x0, 1, 1)
0022 #define MPP2_SATA_PRESENT MPP(2, 0x1, 0, 0)
0023 #define MPP2_UA2_TXD MPP(2, 0x2, 0, 0)
0024 #define MPP2_SDIO0_BUS_POWER MPP(2, 0x3, 0, 0)
0025 #define MPP2_UA_RTSn1 MPP(2, 0x4, 0, 0)
0026
0027 #define MPP3_GPIO3 MPP(3, 0x0, 1, 1)
0028 #define MPP3_SATA_ACT MPP(3, 0x1, 0, 0)
0029 #define MPP3_UA2_RXD MPP(3, 0x2, 0, 0)
0030 #define MPP3_SDIO0_LED_CTRL MPP(3, 0x3, 0, 0)
0031 #define MPP3_UA_CTSn1 MPP(3, 0x4, 0, 0)
0032 #define MPP3_SPI_LCD_CS1 MPP(3, 0xf, 0, 0)
0033
0034 #define MPP4_GPIO4 MPP(4, 0x0, 1, 1)
0035 #define MPP4_UA3_RTSn MPP(4, 0x2, 0, 0)
0036 #define MPP4_SDIO1_CD MPP(4, 0x3, 0, 0)
0037 #define MPP4_SPI_1_MISO MPP(4, 0x4, 0, 0)
0038
0039 #define MPP5_GPIO5 MPP(5, 0x0, 1, 1)
0040 #define MPP5_UA3_CTSn MPP(5, 0x2, 0, 0)
0041 #define MPP5_SDIO1_WP MPP(5, 0x3, 0, 0)
0042 #define MPP5_SPI_1_CS MPP(5, 0x4, 0, 0)
0043
0044 #define MPP6_GPIO6 MPP(6, 0x0, 1, 1)
0045 #define MPP6_UA3_TXD MPP(6, 0x2, 0, 0)
0046 #define MPP6_SDIO1_BUS_POWER MPP(6, 0x3, 0, 0)
0047 #define MPP6_SPI_1_MOSI MPP(6, 0x4, 0, 0)
0048
0049 #define MPP7_GPIO7 MPP(7, 0x0, 1, 1)
0050 #define MPP7_UA3_RXD MPP(7, 0x2, 0, 0)
0051 #define MPP7_SDIO1_LED_CTRL MPP(7, 0x3, 0, 0)
0052 #define MPP7_SPI_1_SCK MPP(7, 0x4, 0, 0)
0053
0054 #define MPP8_GPIO8 MPP(8, 0x0, 1, 1)
0055 #define MPP8_WD_RST_OUT MPP(8, 0x1, 0, 0)
0056
0057 #define MPP9_GPIO9 MPP(9, 0x0, 1, 1)
0058 #define MPP9_PEX1_CLKREQn MPP(9, 0x5, 0, 0)
0059
0060 #define MPP10_GPIO10 MPP(10, 0x0, 1, 1)
0061 #define MPP10_SSP_SCLK MPP(10, 0x5, 0, 0)
0062
0063 #define MPP11_GPIO11 MPP(11, 0x0, 1, 1)
0064 #define MPP11_SATA_PRESENT MPP(11, 0x1, 0, 0)
0065 #define MPP11_SATA_ACT MPP(11, 0x2, 0, 0)
0066 #define MPP11_SDIO0_LED_CTRL MPP(11, 0x3, 0, 0)
0067 #define MPP11_SDIO1_LED_CTRL MPP(11, 0x4, 0, 0)
0068 #define MPP11_PEX0_CLKREQn MPP(11, 0x5, 0, 0)
0069
0070 #define MPP12_GPIO12 MPP(12, 0x0, 1, 1)
0071 #define MPP12_SATA_ACT MPP(12, 0x1, 0, 0)
0072 #define MPP12_UA2_RTSn MPP(12, 0x2, 0, 0)
0073 #define MPP12_AD0_I2S_EXT_MCLK MPP(12, 0x3, 0, 0)
0074 #define MPP12_SDIO1_CD MPP(12, 0x4, 0, 0)
0075
0076 #define MPP13_GPIO13 MPP(13, 0x0, 1, 1)
0077 #define MPP13_UA2_CTSn MPP(13, 0x2, 0, 0)
0078 #define MPP13_AD1_I2S_EXT_MCLK MPP(13, 0x3, 0, 0)
0079 #define MPP13_SDIO1WP MPP(13, 0x4, 0, 0)
0080 #define MPP13_SSP_EXTCLK MPP(13, 0x5, 0, 0)
0081
0082 #define MPP14_GPIO14 MPP(14, 0x0, 1, 1)
0083 #define MPP14_UA2_TXD MPP(14, 0x2, 0, 0)
0084 #define MPP14_SDIO1_BUS_POWER MPP(14, 0x4, 0, 0)
0085 #define MPP14_SSP_RXD MPP(14, 0x5, 0, 0)
0086
0087 #define MPP15_GPIO15 MPP(15, 0x0, 1, 1)
0088 #define MPP15_UA2_RXD MPP(15, 0x2, 0, 0)
0089 #define MPP15_SDIO1_LED_CTRL MPP(15, 0x4, 0, 0)
0090 #define MPP15_SSP_SFRM MPP(15, 0x5, 0, 0)
0091
0092 #define MPP16_GPIO16 MPP(16, 0x0, 1, 1)
0093 #define MPP16_UA3_RTSn MPP(16, 0x2, 0, 0)
0094 #define MPP16_SDIO0_CD MPP(16, 0x3, 0, 0)
0095 #define MPP16_SPI_LCD_CS1 MPP(16, 0x4, 0, 0)
0096 #define MPP16_AC97_SDATA_IN1 MPP(16, 0x5, 0, 0)
0097
0098 #define MPP17_GPIO17 MPP(17, 0x0, 1, 1)
0099 #define MPP17_AC97_SYSCLK_OUT MPP(17, 0x1, 0, 0)
0100 #define MPP17_UA3_CTSn MPP(17, 0x2, 0, 0)
0101 #define MPP17_SDIO0_WP MPP(17, 0x3, 0, 0)
0102 #define MPP17_TW_SDA2 MPP(17, 0x4, 0, 0)
0103 #define MPP17_AC97_SDATA_IN2 MPP(17, 0x5, 0, 0)
0104
0105 #define MPP18_GPIO18 MPP(18, 0x0, 1, 1)
0106 #define MPP18_UA3_TXD MPP(18, 0x2, 0, 0)
0107 #define MPP18_SDIO0_BUS_POWER MPP(18, 0x3, 0, 0)
0108 #define MPP18_LCD0_PWM MPP(18, 0x4, 0, 0)
0109 #define MPP18_AC_SDATA_IN3 MPP(18, 0x5, 0, 0)
0110
0111 #define MPP19_GPIO19 MPP(19, 0x0, 1, 1)
0112 #define MPP19_UA3_RXD MPP(19, 0x2, 0, 0)
0113 #define MPP19_SDIO0_LED_CTRL MPP(19, 0x3, 0, 0)
0114 #define MPP19_TW_SCK2 MPP(19, 0x4, 0, 0)
0115
0116 #define MPP20_GPIO20 MPP(20, 0x0, 1, 1)
0117 #define MPP20_AC97_SYSCLK_OUT MPP(20, 0x1, 0, 0)
0118 #define MPP20_SPI_LCD_MISO MPP(20, 0x2, 0, 0)
0119 #define MPP20_SDIO1_CD MPP(20, 0x3, 0, 0)
0120 #define MPP20_SDIO0_CD MPP(20, 0x5, 0, 0)
0121 #define MPP20_SPI_1_MISO MPP(20, 0x6, 0, 0)
0122
0123 #define MPP21_GPIO21 MPP(21, 0x0, 1, 1)
0124 #define MPP21_UA1_RTSn MPP(21, 0x1, 0, 0)
0125 #define MPP21_SPI_LCD_CS0 MPP(21, 0x2, 0, 0)
0126 #define MPP21_SDIO1_WP MPP(21, 0x3, 0, 0)
0127 #define MPP21_SSP_SFRM MPP(21, 0x4, 0, 0)
0128 #define MPP21_SDIO0_WP MPP(21, 0x5, 0, 0)
0129 #define MPP21_SPI_1_CS MPP(21, 0x6, 0, 0)
0130
0131 #define MPP22_GPIO22 MPP(22, 0x0, 1, 1)
0132 #define MPP22_UA1_CTSn MPP(22, 0x1, 0, 0)
0133 #define MPP22_SPI_LCD_MOSI MPP(22, 0x2, 0, 0)
0134 #define MPP22_SDIO1_BUS_POWER MPP(22, 0x3, 0, 0)
0135 #define MPP22_SSP_TXD MPP(22, 0x4, 0, 0)
0136 #define MPP22_SDIO0_BUS_POWER MPP(22, 0x5, 0, 0)
0137 #define MPP22_SPI_1_MOSI MPP(22, 0x6, 0, 0)
0138
0139 #define MPP23_GPIO23 MPP(23, 0x0, 1, 1)
0140 #define MPP23_SPI_LCD_SCK MPP(23, 0x2, 0, 0)
0141 #define MPP23_SDIO1_LED_CTRL MPP(23, 0x3, 0, 0)
0142 #define MPP23_SSP_SCLK MPP(23, 0x4, 0, 0)
0143 #define MPP23_SDIO0_LED_CTRL MPP(23, 0x5, 0, 0)
0144 #define MPP23_SPI_1_SCK MPP(23, 0x6, 0, 0)
0145
0146 #define MPP_MAX 23
0147
0148 #define MPP_GRP(_grp, _mode) MPP((_grp), (_mode), 0, 0)
0149
0150
0151 enum dove_mpp_grp_idx {
0152 MPP_24_39 = 2,
0153 MPP_40_45 = 0,
0154 MPP_46_51 = 1,
0155 MPP_58_61 = 5,
0156 MPP_62_63 = 4,
0157 MPP_GRP_MAX = 5,
0158 };
0159
0160 #define MPP_GRP_24_39_GPIO MPP_GRP(MPP_24_39, 0x1)
0161 #define MPP_GRP_24_39_CAM MPP_GRP(MPP_24_39, 0x0)
0162
0163 #define MPP_GRP_40_45_GPIO MPP_GRP(MPP_40_45, 0x1)
0164 #define MPP_GRP_40_45_SD0 MPP_GRP(MPP_40_45, 0x0)
0165
0166 #define MPP_GRP_46_51_GPIO MPP_GRP(MPP_46_51, 0x1)
0167 #define MPP_GRP_46_51_SD1 MPP_GRP(MPP_46_51, 0x0)
0168
0169 #define MPP_GRP_58_61_GPIO MPP_GRP(MPP_58_61, 0x1)
0170 #define MPP_GRP_58_61_SPI MPP_GRP(MPP_58_61, 0x0)
0171
0172 #define MPP_GRP_62_63_GPIO MPP_GRP(MPP_62_63, 0x1)
0173 #define MPP_GRP_62_63_UA1 MPP_GRP(MPP_62_63, 0x0)
0174
0175
0176 #define MPP_GRP_NFC_64_71_GPO 0x1
0177 #define MPP_GRP_NFC_64_71_NFC 0x0
0178
0179
0180
0181
0182
0183
0184 #define MPP_GRP_AU1_52_57_AU1 0x0
0185 #define MPP_GRP_AU1_52_57_AU1_GPIO57 0x2
0186 #define MPP_GRP_AU1_52_57_GPIO 0xa
0187 #define MPP_GRP_AU1_52_57_TW_GPIO 0xb
0188 #define MPP_GRP_AU1_52_57_AU1_SSP 0xc
0189 #define MPP_GRP_AU1_52_57_SSP_GPIO 0xe
0190 #define MPP_GRP_AU1_52_57_SSP_TW 0xf
0191
0192 void dove_mpp_conf(unsigned int *mpp_list,
0193 unsigned int *mpp_grp_list,
0194 unsigned int grp_au1_52_57,
0195 unsigned int grp_nfc_64_71);
0196
0197 #endif