1*46650d58SDmitry Lifshitz /* 2*46650d58SDmitry Lifshitz * Pinmux configuration for CompuLab CL-SOM-AM57x board 3*46650d58SDmitry Lifshitz * 4*46650d58SDmitry Lifshitz * (C) Copyright 2016 CompuLab, Ltd. http://compulab.co.il/ 5*46650d58SDmitry Lifshitz * 6*46650d58SDmitry Lifshitz * Author: Dmitry Lifshitz <lifshitz@compulab.co.il> 7*46650d58SDmitry Lifshitz * 8*46650d58SDmitry Lifshitz * SPDX-License-Identifier: GPL-2.0+ 9*46650d58SDmitry Lifshitz */ 10*46650d58SDmitry Lifshitz #include <asm/arch/sys_proto.h> 11*46650d58SDmitry Lifshitz #include <asm/arch/mux_dra7xx.h> 12*46650d58SDmitry Lifshitz 13*46650d58SDmitry Lifshitz /* Serial console */ 14*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_console[] = { 15*46650d58SDmitry Lifshitz {UART3_RXD, (FSC | IEN | PDIS | PTU | M0)}, /* UART3_RXD */ 16*46650d58SDmitry Lifshitz {UART3_TXD, (FSC | IEN | PDIS | PTU | M0)}, /* UART3_TXD */ 17*46650d58SDmitry Lifshitz }; 18*46650d58SDmitry Lifshitz 19*46650d58SDmitry Lifshitz /* PMIC I2C */ 20*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_pmic[] = { 21*46650d58SDmitry Lifshitz {MCASP1_ACLKR, (IEN | PEN | M10)}, /* MCASP1_ACLKR.I2C4_SDA */ 22*46650d58SDmitry Lifshitz {MCASP1_FSR, (IEN | PEN | M10)}, /* MCASP1_FSR.I2C4_SCL */ 23*46650d58SDmitry Lifshitz }; 24*46650d58SDmitry Lifshitz 25*46650d58SDmitry Lifshitz /* Green GPIO led */ 26*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_green_led[] = { 27*46650d58SDmitry Lifshitz {GPMC_A15, (IDIS | PDIS | PTD | M14)}, /* GPMC_A15.GPIO2_5 */ 28*46650d58SDmitry Lifshitz }; 29*46650d58SDmitry Lifshitz 30*46650d58SDmitry Lifshitz /* MMC/SD Card */ 31*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_sd_card[] = { 32*46650d58SDmitry Lifshitz {MMC1_CLK, (IEN | PDIS | PTU | M0) }, /* MMC1_CLK */ 33*46650d58SDmitry Lifshitz {MMC1_CMD, (IEN | PDIS | PTU | M0) }, /* MMC1_CMD */ 34*46650d58SDmitry Lifshitz {MMC1_DAT0, (IEN | PDIS | PTU | M0) }, /* MMC1_DAT0 */ 35*46650d58SDmitry Lifshitz {MMC1_DAT1, (IEN | PDIS | PTU | M0) }, /* MMC1_DAT1 */ 36*46650d58SDmitry Lifshitz {MMC1_DAT2, (IEN | PDIS | PTU | M0) }, /* MMC1_DAT2 */ 37*46650d58SDmitry Lifshitz {MMC1_DAT3, (IEN | PDIS | PTU | M0) }, /* MMC1_DAT3 */ 38*46650d58SDmitry Lifshitz {MMC1_SDCD, (IEN | PEN | M14)}, /* MMC1_SDCD */ 39*46650d58SDmitry Lifshitz {MMC1_SDWP, (IEN | PEN | M14)}, /* MMC1_SDWP */ 40*46650d58SDmitry Lifshitz }; 41*46650d58SDmitry Lifshitz 42*46650d58SDmitry Lifshitz /* WiFi - must be in the safe mode on boot */ 43*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_wifi[] = { 44*46650d58SDmitry Lifshitz {UART1_CTSN, (IEN | M15)}, /* UART1_CTSN */ 45*46650d58SDmitry Lifshitz {UART1_RTSN, (IEN | M15)}, /* UART1_RTSN */ 46*46650d58SDmitry Lifshitz {UART2_RXD, (IEN | M15)}, /* UART2_RXD */ 47*46650d58SDmitry Lifshitz {UART2_TXD, (IEN | M15)}, /* UART2_TXD */ 48*46650d58SDmitry Lifshitz {UART2_CTSN, (IEN | M15)}, /* UART2_CTSN */ 49*46650d58SDmitry Lifshitz {UART2_RTSN, (IEN | M15)}, /* UART2_RTSN */ 50*46650d58SDmitry Lifshitz }; 51*46650d58SDmitry Lifshitz 52*46650d58SDmitry Lifshitz /* QSPI */ 53*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_qspi[] = { 54*46650d58SDmitry Lifshitz {GPMC_A13, (IEN | PEN | M1)}, /* GPMC_A13.QSPI1_RTCLK */ 55*46650d58SDmitry Lifshitz {GPMC_A18, (IEN | PEN | M1)}, /* GPMC_A18.QSPI1_SCLK */ 56*46650d58SDmitry Lifshitz {GPMC_A16, (IEN | PEN | M1)}, /* GPMC_A16.QSPI1_D0 */ 57*46650d58SDmitry Lifshitz {GPMC_A17, (IEN | PEN | M1)}, /* GPMC_A17.QSPI1_D1 */ 58*46650d58SDmitry Lifshitz {GPMC_CS2, (IEN | PDIS | PTU | M1)}, /* GPMC_CS2.QSPI1_CS0 */ 59*46650d58SDmitry Lifshitz }; 60*46650d58SDmitry Lifshitz 61*46650d58SDmitry Lifshitz /* GPIO Expander I2C */ 62*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_i2c_gpio[] = { 63*46650d58SDmitry Lifshitz {MCASP1_AXR0, (IEN | PEN | M10)}, /* MCASP1_AXR0.I2C5_SDA */ 64*46650d58SDmitry Lifshitz {MCASP1_AXR1, (IEN | PEN | M10)}, /* MCASP1_AXR1.I2C5_SCL */ 65*46650d58SDmitry Lifshitz }; 66*46650d58SDmitry Lifshitz 67*46650d58SDmitry Lifshitz /* eMMC internal storage */ 68*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_emmc[] = { 69*46650d58SDmitry Lifshitz {GPMC_A19, (IEN | PDIS | PTU | M1)}, /* GPMC_A19.MMC2_DAT4 */ 70*46650d58SDmitry Lifshitz {GPMC_A20, (IEN | PDIS | PTU | M1)}, /* GPMC_A20.MMC2_DAT5 */ 71*46650d58SDmitry Lifshitz {GPMC_A21, (IEN | PDIS | PTU | M1)}, /* GPMC_A21.MMC2_DAT6 */ 72*46650d58SDmitry Lifshitz {GPMC_A22, (IEN | PDIS | PTU | M1)}, /* GPMC_A22.MMC2_DAT7 */ 73*46650d58SDmitry Lifshitz {GPMC_A23, (IEN | PDIS | PTU | M1)}, /* GPMC_A23.MMC2_CLK */ 74*46650d58SDmitry Lifshitz {GPMC_A24, (IEN | PDIS | PTU | M1)}, /* GPMC_A24.MMC2_DAT0 */ 75*46650d58SDmitry Lifshitz {GPMC_A25, (IEN | PDIS | PTU | M1)}, /* GPMC_A25.MMC2_DAT1 */ 76*46650d58SDmitry Lifshitz {GPMC_A26, (IEN | PDIS | PTU | M1)}, /* GPMC_A26.MMC2_DAT2 */ 77*46650d58SDmitry Lifshitz {GPMC_A27, (IEN | PDIS | PTU | M1)}, /* GPMC_A27.MMC2_DAT3 */ 78*46650d58SDmitry Lifshitz {GPMC_CS1, (IEN | PDIS | PTU | M1)}, /* GPMC_CS1.MMC2_CMD */ 79*46650d58SDmitry Lifshitz }; 80*46650d58SDmitry Lifshitz 81*46650d58SDmitry Lifshitz /* usb1_drvvbus */ 82*46650d58SDmitry Lifshitz static const struct pad_conf_entry cl_som_am57x_padconf_usb[] = { 83*46650d58SDmitry Lifshitz {USB1_DRVVBUS, (M0 | FSC) }, /* USB1_DRVVBUS.USB1_DRVVBUS */ 84*46650d58SDmitry Lifshitz }; 85*46650d58SDmitry Lifshitz 86*46650d58SDmitry Lifshitz #define SET_MUX(mux_array) do_set_mux32((*ctrl)->control_padconf_core_base, \ 87*46650d58SDmitry Lifshitz mux_array, ARRAY_SIZE(mux_array)) 88*46650d58SDmitry Lifshitz 89*46650d58SDmitry Lifshitz void set_muxconf_regs(void) 90*46650d58SDmitry Lifshitz { 91*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_console); 92*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_pmic); 93*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_green_led); 94*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_sd_card); 95*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_wifi); 96*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_qspi); 97*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_i2c_gpio); 98*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_emmc); 99*46650d58SDmitry Lifshitz SET_MUX(cl_som_am57x_padconf_usb); 100*46650d58SDmitry Lifshitz } 101