blob: 39cb2fc3ece47cc5b9111e0436809daea79c7be3 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include "memmap.h"
#include "global.h"
#include "SysMgr.h"
#include "apb_perf_base.h"
#include "pin_settings.h"
T32Gbl_pinMux pinmux_soc;
T32Gbl_pinMux1 pinmux_soc1;
T32smSysCtl_SM_GSM_SEL pinmux_sm;
void pin_init()
{
/*
* pinmux
*/
pinmux_soc.upinMux_gp0 = SOC_GROUP0;
pinmux_soc.upinMux_gp1 = SOC_GROUP1;
pinmux_soc.upinMux_gp2 = SOC_GROUP2;
pinmux_soc.upinMux_gp3 = SOC_GROUP3;
pinmux_soc.upinMux_gp4 = SOC_GROUP4;
pinmux_soc.upinMux_gp5 = SOC_GROUP5;
pinmux_soc.upinMux_gp6 = SOC_GROUP6;
pinmux_soc.upinMux_gp7 = SOC_GROUP7;
pinmux_soc.upinMux_gp8 = SOC_GROUP8;
pinmux_soc.upinMux_gp9 = SOC_GROUP9;
pinmux_soc.upinMux_gp10 = SOC_GROUP10;
pinmux_soc.upinMux_gp11 = SOC_GROUP11;
pinmux_soc.upinMux_gp12 = SOC_GROUP12;
pinmux_soc1.upinMux_gp13 = SOC_GROUP13;
pinmux_soc1.upinMux_gp14 = SOC_GROUP14;
pinmux_soc1.upinMux_gp15 = SOC_GROUP15;
pinmux_soc1.upinMux_gp16 = SOC_GROUP16;
pinmux_soc1.upinMux_gp17 = SOC_GROUP17;
pinmux_soc1.upinMux_gp18 = SOC_GROUP18;
pinmux_soc1.upinMux_gp19 = SOC_GROUP19;
pinmux_soc1.upinMux_gp20 = SOC_GROUP20;
pinmux_soc1.upinMux_gp21 = SOC_GROUP21;
pinmux_soc1.upinMux_gp22 = SOC_GROUP22;
pinmux_soc1.upinMux_gp23 = SOC_GROUP23;
pinmux_soc1.upinMux_gp24 = SOC_GROUP24;
pinmux_soc1.upinMux_gp25 = SOC_GROUP25;
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2_A0)
pinmux_soc1.upinMux_gp26 = SOC_GROUP26;
pinmux_soc1.upinMux_gp27 = SOC_GROUP27;
pinmux_soc1.upinMux_gp28 = SOC_GROUP28;
#endif
pinmux_sm.uSM_GSM_SEL_GSM0_SEL = SM_GROUP0;
pinmux_sm.uSM_GSM_SEL_GSM1_SEL = SM_GROUP1;
pinmux_sm.uSM_GSM_SEL_GSM2_SEL = SM_GROUP2;
pinmux_sm.uSM_GSM_SEL_GSM3_SEL = SM_GROUP3;
pinmux_sm.uSM_GSM_SEL_GSM4_SEL = SM_GROUP4;
pinmux_sm.uSM_GSM_SEL_GSM5_SEL = SM_GROUP5;
pinmux_sm.uSM_GSM_SEL_GSM6_SEL = SM_GROUP6;
pinmux_sm.uSM_GSM_SEL_GSM7_SEL = SM_GROUP7;
pinmux_sm.uSM_GSM_SEL_GSM8_SEL = SM_GROUP8;
pinmux_sm.uSM_GSM_SEL_GSM9_SEL = SM_GROUP9;
pinmux_sm.uSM_GSM_SEL_GSM10_SEL = SM_GROUP10;
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2_A0)
pinmux_sm.uSM_GSM_SEL_GSM11_SEL = SM_GROUP11;
#endif
// writel(pinmux_sm.u32, (SM_SYS_CTRL_REG_BASE + RA_smSysCtl_SM_GSM_SEL));
// writel(pinmux_soc.u32, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux));
// writel(pinmux_soc1.u32, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux1));
}
#if 0
void gpio_init()
{
int i;
/*
* GPIO settings
*/
for(i=0; sm_gpio_table[i][0] != -1; i++) {
SM_GPIO_PortSetInOut(sm_gpio_table[i][0], sm_gpio_table[i][1]);
SM_GPIO_PortWrite(sm_gpio_table[i][0], sm_gpio_table[i][2]);
// printf("sm port %d, in/out %d, value: %d\n", sm_gpio_table[i][0], sm_gpio_table[i][1], sm_gpio_table[i][2]);
}
for(i=0; soc_gpio_table[i][0] != -1; i++) {
GPIO_PortSetInOut(soc_gpio_table[i][0], soc_gpio_table[i][1]);
GPIO_PortWrite(soc_gpio_table[i][0], soc_gpio_table[i][2]);
// printf("soc port %d, in/out %d, value: %d\n", soc_gpio_table[i][0], soc_gpio_table[i][1], soc_gpio_table[i][2]);
}
}
#endif
int main()
{
FILE *of=NULL;
char of_name[128];
sprintf(of_name, "%s.uboot", BOARD_TYPE, CHIP_VERSION);
of = fopen(of_name, "w+");
if(of == NULL) {
fprintf(stderr, "Open %s failed.\n", of_name);
return -1;
}
pin_init();
fprintf(of, "mw.l 0x%08x 0x%08x;\n", (SM_SYS_CTRL_REG_BASE + RA_smSysCtl_SM_GSM_SEL), (int)pinmux_sm.u32);
fprintf(of, "md.l 0x%08x 1;\n", (SM_SYS_CTRL_REG_BASE + RA_smSysCtl_SM_GSM_SEL));
fprintf(of, "mw.l 0x%08x 0x%08x;\n", (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux), (int)pinmux_soc.u32);
fprintf(of, "md.l 0x%08x 1;\n", (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux));
fprintf(of, "mw.l 0x%08x 0x%08x;\n", (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux1), (int)pinmux_soc1.u32);
fprintf(of, "md.l 0x%08x 1;\n", (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_pinMux1));
fprintf(of, "setenv pinmux y;\n");
fclose(of);
printf("\n");
printf("Pinmu file for uboot is generated to %s\n", of_name);
return 0;
}