int misc_init_r(void) { cl_print_pcb_info(); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio1_base = (struct gpio *)OMAP34XX_GPIO1_BASE; struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); /* * GPIO list * - 159 OUT (GPIO5+31): reset for remote camera interface connector. * - 19 OUT (GPIO1+19): integrated speaker amplifier (1=on, 0=shdn). * - 20 OUT (GPIO1+20): handset amplifier (1=on, 0=shdn). */ /* Configure GPIOs to output */ writel(~(GPIO19 | GPIO20), &gpio1_base->oe); writel(~(GPIO31), &gpio5_base->oe); /* Set GPIO values */ writel((GPIO19 | GPIO20), &gpio1_base->setdataout); writel(0, &gpio5_base->setdataout); #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; #ifdef CONFIG_DRIVER_OMAP34XX_I2C printf("i2c init...\n"); i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); #endif /* Enable i2c2 pullup resisters */ writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); omap3_spi_init(); load_revision(); printf("Init CPLD...\n"); init_cpld_gpio(); printf("Init CPLD Muxing"); set_cpld_muxing(CPLD_MUX_EXP_01_OUT | CPLD_MUX_EXP_02_OUT | CPLD_MUX_EXP_03_OUT | CPLD_MUX_EXP_04_OUT | CPLD_MUX_EXP_05_OUT | CPLD_MUX_EXP_06_OUT | CPLD_MUX_EXP_07_OUT | CPLD_MUX_EXP_08_OUT); /* Power display on */ set_cpld_gpio(LCD_VDD_EN,1); dieid_num_r(); return 0; }
/****************************************************************************** * Routine: misc_init_r * Description: Configure board specific parts *****************************************************************************/ int misc_init_r(void) { power_init_r(); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { twl4030_power_init(); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Init i2c, ethernet, etc... (done here so udelay works) */ int misc_init_r(void) { #ifdef CONFIG_SYS_I2C_OMAP34XX i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { twl4030_power_init(); #ifdef CONFIG_TWL4030_LED twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { twl4030_power_init(); #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Init i2c, ethernet, etc... (done here so udelay works) */ int misc_init_r(void) { #ifdef CONFIG_DRIVER_OMAP34XX_I2C i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); #endif dieid_num_r(); am3517_evm_musb_init(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: display die ID */ int misc_init_r(void) { u32 board_rev = get_board_rev(); u32 rev_major = board_rev / 100; u32 rev_minor = board_rev - (rev_major * 100); if ((rev_minor / 10) * 10 == rev_minor) rev_minor = rev_minor / 10; printf("PCB: %u.%u\n", rev_major, rev_minor); dieid_num_r(); return 0; }
/******************************************************* * Routine: misc_init_r * Description: Init ethernet (done here so udelay works) ********************************************************/ int misc_init_r(void) { #ifdef CONFIG_DRIVER_OMAP34XX_I2C unsigned char data; i2c_init(CFG_I2C_SPEED, CFG_I2C_SLAVE); twl4030_power_reset_init(); /* see if we need to activate the power button startup */ char *s = getenv("pbboot"); if (s) { /* figure out why we have booted */ i2c_read(0x4b, 0x3a, 1, &data, 1); /* if status is non-zero, we didn't transition * from WAIT_ON state */ if (data) { printf("Transitioning to Wait State (%x)\n", data); /* clear status */ data = 0; i2c_write(0x4b, 0x3a, 1, &data, 1); /* put PM into WAIT_ON state */ data = 0x01; i2c_write(0x4b, 0x46, 1, &data, 1); /* no return - wait for power shutdown */ while (1) {;} } printf("Transitioning to Active State (%x)\n", data); /* turn on long pwr button press reset*/ data = 0x40; i2c_write(0x4b, 0x46, 1, &data, 1); printf("Power Button Active\n"); } #endif //&*&*&*20101201_Peter ++ twl4030_usb_init(); twl4030_keypad_init(); twl4030_madc_init(); twl4030_vadc_onoff(1); //&*&*&*20101201_Peter -- dieid_num_r(); return (0); }
/* * Routine: misc_init_r * Description: Init ethernet (done here so udelay works) */ int misc_init_r(void) { #ifdef CONFIG_DRIVER_OMAP34XX_I2C i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); #endif #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif dieid_num_r(); return 0; }
int misc_init_r(void) { char *eth_addr; dieid_num_r(); eth_addr = getenv("ethaddr"); if (eth_addr) return 0; #ifndef CONFIG_SPL_BUILD TAM3517_READ_MAC_FROM_EEPROM; #endif return 0; }
/* * Routine: misc_init_r * Description: Configure zoom board specific configurations */ int misc_init_r(void) { twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); dieid_num_r(); /* * Board Reset * The board is reset by holding the red button on the * top right front face for eight seconds. */ twl4030_power_reset_init(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { MUX_BBTOYS_WIFI(); twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); dieid_num_r(); blueshark_display_init(); omap3_dss_enable(); /* Read EEPROM with EUI-48 */ read_eeprom(); return 0; }
int misc_init_r(void) { char *eth_addr; struct tam3517_module_info info; int ret; TAM3517_READ_EEPROM(&info, ret); dieid_num_r(); if (ret) return 0; eth_addr = getenv("ethaddr"); if (!eth_addr) TAM3517_READ_MAC_FROM_EEPROM(&info); TAM3517_PRINT_SOM_INFO(&info); return 0; }
/* * Routine: misc_init_r * Description: Configure zoom board specific configurations */ int misc_init_r(void) { zoom2_identify(); twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); dieid_num_r(); /* * Board Reset * The board is reset by holding the the large button * on the top right side of the main board for * eight seconds. * * There are reported problems of some beta boards * continously resetting. For those boards, disable resetting. */ if (ZOOM2_REVISION_PRODUCTION <= zoom2_get_revision()) twl4030_power_reset_init(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { printf("mvBlueLYNX-X\n"); if (get_cpu_family() == CPU_OMAP36XX) setenv("mpurate", "1000"); else setenv("mpurate", "600"); twl4030_power_init(); #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif /* CONFIG_CMD_NET */ mvblx_init_fpga(); mac_read_from_eeprom(); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { t2_t *t2_base = (t2_t *)T2_BASE; u32 pbias_lite; twl4030_led_init(TWL4030_LED_LEDEN_LEDBON); /* set up dual-voltage GPIOs to 1.8V */ pbias_lite = readl(&t2_base->pbias_lite); pbias_lite &= ~PBIASLITEVMODE1; pbias_lite |= PBIASLITEPWRDNZ1; writel(pbias_lite, &t2_base->pbias_lite); if (get_cpu_family() == CPU_OMAP36XX) writel(readl(CONTROL_WKUP_CTRL) | GPIO_IO_PWRDNZ, CONTROL_WKUP_CTRL); /* make sure audio and BT chips are in powerdown state */ set_output_gpio(14, 0); set_output_gpio(15, 0); set_output_gpio(118, 0); /* enable USB supply */ set_output_gpio(164, 1); /* wifi needs a short pulse to enter powersave state */ set_output_gpio(23, 1); udelay(5000); gpio_direction_output(23, 0); /* Enable battery backup capacitor (3.2V, 0.5mA charge current) */ twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, TWL4030_PM_RECEIVER_BB_CFG, TWL4030_BB_CFG_BBCHEN | TWL4030_BB_CFG_BBSEL_3200MV | TWL4030_BB_CFG_BBISEL_500UA); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { gpio_t *gpio5_base = (gpio_t *)OMAP34XX_GPIO5_BASE; gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE; power_init_r(); /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); /* Set GPIOs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); beagle_identify(); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; switch (get_board_revision()) { case REVISION_AXBX: printf("Beagle Rev Ax/Bx\n"); setenv("beaglerev", "AxBx"); setenv("mpurate", "600"); break; case REVISION_CX: printf("Beagle Rev C1/C2/C3\n"); setenv("beaglerev", "Cx"); setenv("mpurate", "600"); MUX_BEAGLE_C(); break; case REVISION_C4: printf("Beagle Rev C4\n"); setenv("beaglerev", "C4"); setenv("mpurate", "720"); MUX_BEAGLE_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM: printf("Beagle xM Rev A\n"); setenv("beaglerev", "xMA"); setenv("mpurate", "1000"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; default: printf("Beagle unknown 0x%02x\n", get_board_revision()); } twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); /* Set GPIOs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; /* Enable i2c2 pullup resisters */ writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); switch (get_board_revision()) { case REVISION_AXBX: printf("Beagle Rev Ax/Bx\n"); setenv("beaglerev", "AxBx"); break; case REVISION_CX: printf("Beagle Rev C1/C2/C3\n"); setenv("beaglerev", "Cx"); MUX_BEAGLE_C(); break; case REVISION_C4: printf("Beagle Rev C4\n"); setenv("beaglerev", "C4"); MUX_BEAGLE_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM_A: printf("Beagle xM Rev A\n"); setenv("beaglerev", "xMA"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM_B: printf("Beagle xM Rev B\n"); setenv("beaglerev", "xMB"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM_C: printf("Beagle xM Rev C\n"); setenv("beaglerev", "xMC"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; default: printf("Beagle unknown 0x%02x\n", get_board_revision()); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); } switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS)) { case TINCANTOOLS_ZIPPY: printf("Recognized Tincantools Zippy board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); setenv("buddy", "zippy"); break; case TINCANTOOLS_ZIPPY2: printf("Recognized Tincantools Zippy2 board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); setenv("buddy", "zippy2"); break; case TINCANTOOLS_TRAINER: printf("Recognized Tincantools Trainer board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); MUX_TINCANTOOLS_TRAINER(); setenv("buddy", "trainer"); break; case TINCANTOOLS_SHOWDOG: printf("Recognized Tincantools Showdow board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); /* Place holder for DSS2 definition for showdog lcd */ setenv("defaultdisplay", "showdoglcd"); setenv("buddy", "showdog"); break; case TINCANTOOLS_BEACON: printf("Recognized Tincantools Beacon board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_BEACON(); setenv("buddy", "beacon"); break; case KBADC_BEAGLEFPGA: printf("Recognized KBADC Beagle FPGA board\n"); MUX_KBADC_BEAGLEFPGA(); setenv("buddy", "beaglefpga"); break; case LW_BEAGLETOUCH: printf("Recognized Liquidware BeagleTouch board\n"); setenv("buddy", "beagletouch"); break; case BRAINMUX_LCDOG: printf("Recognized Brainmux LCDog board\n"); setenv("buddy", "lcdog"); break; case BRAINMUX_LCDOGTOUCH: printf("Recognized Brainmux LCDog Touch board\n"); setenv("buddy", "lcdogtouch"); break; case BBTOYS_WIFI: printf("Recognized BeagleBoardToys WiFi board\n"); MUX_BBTOYS_WIFI() setenv("buddy", "bbtoys-wifi"); break;; case BBTOYS_VGA: printf("Recognized BeagleBoardToys VGA board\n"); break;; case BBTOYS_LCD: printf("Recognized BeagleBoardToys LCD board\n"); break;; case BEAGLE_NO_EEPROM: printf("No EEPROM on expansion board\n"); setenv("buddy", "none"); break; default: printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor); setenv("buddy", "unknown"); } if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); /* Scan 0x51 as well for loop-thru boards */ switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS + 1)) { case BBTOYS_ULCD: printf("Recognized BeagleBoardToys uLCD-lite board\n"); setenv("buddy2", "bbtoys-ulcd"); setenv("defaultdisplay", "lcd"); setenv("uenvcmd", "i2c dev 1 ; i2c mw 40 00 00; i2c mw 40 04 80; i2c mw 40 0d 05; i2c mw 40 0d 15"); break; case BEAGLE_NO_EEPROM: printf("No EEPROM on expansion board\n"); setenv("buddy2", "none"); break; default: printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor); setenv("buddy2", "unknown"); } if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); twl4030_power_init(); switch (get_board_revision()) { case REVISION_XM_A: case REVISION_XM_B: twl4030_led_init(TWL4030_LED_LEDEN_LEDBON); break; default: twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); break; } /* Set GPIO states before they are made outputs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); dieid_num_r(); beagle_display_init(); omap3_dss_enable(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); #if defined(CONFIG_CMD_NET) setup_net_chip(); #endif printf("Board revision: %d\n", get_board_revision()); switch (get_sdio2_config()) { case 0: printf("Tranceiver detected on mmc2\n"); MUX_OVERO_SDIO2_TRANSCEIVER(); break; case 1: printf("Direct connection on mmc2\n"); MUX_OVERO_SDIO2_DIRECT(); break; default: printf("Unable to detect mmc2 connection type\n"); } switch (get_expansion_id()) { case GUMSTIX_SUMMIT: printf("Recognized Summit expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "dvi"); break; case GUMSTIX_TOBI: printf("Recognized Tobi expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "dvi"); break; case GUMSTIX_TOBI_DUO: printf("Recognized Tobi Duo expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); break; case GUMSTIX_PALO35: printf("Recognized Palo35 expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "lcd35"); break; case GUMSTIX_PALO43: printf("Recognized Palo43 expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "lcd43"); break; case GUMSTIX_CHESTNUT43: printf("Recognized Chestnut43 expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "lcd43"); break; case GUMSTIX_PINTO: printf("Recognized Pinto expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); break; case GUMSTIX_GALLOP43: printf("Recognized Gallop43 expansion board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); setenv("defaultdisplay", "lcd43"); break; case ETTUS_USRP_E: printf("Recognized Ettus Research USRP-E (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_USRP_E(); setenv("defaultdisplay", "dvi"); break; case GUMSTIX_NO_EEPROM: printf("No EEPROM on expansion board\n"); break; default: printf("Unrecognized expansion board\n"); } if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { int err; hw_boot_status status_bits; unsigned short reg; unsigned char val; u8 data; /* * Configure drive strength for IO cells */ // already pulled up on board //*(ulong *)(CONTROL_PROG_IO1) &= ~(PRG_I2C2_PULLUPRESX); _board_revision(); printf("%s: initialize TPS65950 voltages\n", __func__); twl4030_power_init(); printf("%s: select TPS65950 power-on HW transitions(PWRON and RTC)\n", __func__); twl4030_set_px_transition(0x07, 0x49); printf("%s: select 1-GHz MPU clock\n", __func__); // 26 MHz * 500 / (12 + 1) select_mpu_clock(500, 12); lcd_config(); printf("%s: initialize all peripherals\n", __func__); omap_request_gpio(27); // Enable periph 3V omap_request_gpio(34); // reset USBHUB omap_request_gpio(38); // disable CAN omap_request_gpio(40); // reset modem omap_request_gpio(41); // disable modem omap_request_gpio(42); // reset CAP touch omap_request_gpio(43); // off CAN omap_request_gpio(61); // off modem omap_request_gpio(64); // off GPS omap_request_gpio(65); // off USB PHY omap_request_gpio(94); // automotive out high omap_request_gpio(95); // Wireless module VIO 1.8 V omap_request_gpio(98); // DEVICE_EN omap_request_gpio(111); // off USB PHY omap_request_gpio(136); // Wireless module VDD 3.6 V omap_request_gpio(137); // BT_EN omap_request_gpio(138); // WL_EN omap_request_gpio(144); // disable GPS omap_request_gpio(145); // reset GPS omap_request_gpio(146); // disable GPS boot omap_request_gpio(161); // select microphone omap_request_gpio(162); // serial transmitter force on omap_request_gpio(175); // shutdown internal speaker amplifier omap_request_gpio(176); // shutdown external speaker amplifier omap_request_gpio(177); // enable external I2C device omap_request_gpio(186); // PWR_ON generator // Enable serial ports transceiver omap_set_gpio_dataout(162, 1); omap_set_gpio_direction(162, 0); omap_set_gpio_dataout(98, 0); omap_set_gpio_direction(98, 0); omap_set_gpio_dataout(94, 0); omap_set_gpio_direction(94, 0); // enable peripheral 3.3 V omap_set_gpio_dataout(27, 1); omap_set_gpio_direction(27, 0); // PWR_ON generator will off omap_set_gpio_dataout(186, 1); omap_set_gpio_direction(186, 0); // disable BT omap_set_gpio_dataout(137, 0); omap_set_gpio_direction(137, 0); // disable WL omap_set_gpio_dataout(138, 0); omap_set_gpio_direction(138, 0); // wireless VIO 1.8V off omap_set_gpio_dataout(95, 0); omap_set_gpio_direction(95, 0); // remove wireless VDD 3.6 V omap_set_gpio_dataout(136, 0); omap_set_gpio_direction(136, 0); udelay(100000); // Supply VDD and VIO to WiFi omap_set_gpio_dataout(136, 1); omap_set_gpio_dataout(95, 1); udelay(100000); // enable digital PADs // MMC2 MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) // UART2 MUX_VAL(CP(MCBSP3_FSX), (IEN | PTD | DIS | M1)) MUX_VAL(CP(MCBSP3_CLKX),(IDIS | PTD | DIS | M1)) MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M1)) MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M1)) udelay(200000); // pulse enable pins // enable WL omap_set_gpio_dataout(138, 1); // enable BT omap_set_gpio_dataout(137, 1); udelay(200000); // Valdimir: temporary enabled // disable BT //omap_set_gpio_dataout(137, 0); // disable WL //omap_set_gpio_dataout(138, 0); omap_set_gpio_dataout(41, 0); omap_set_gpio_direction(41, 0); omap_set_gpio_dataout(40, 0); omap_set_gpio_direction(40, 0); omap_set_gpio_dataout(61, 0); omap_set_gpio_direction(61, 0); omap_set_gpio_dataout(144, 0); omap_set_gpio_direction(144, 0); omap_set_gpio_dataout(145, 0); omap_set_gpio_direction(145, 0); omap_set_gpio_dataout(146, 0); omap_set_gpio_direction(146, 0); omap_set_gpio_dataout(64, 0); omap_set_gpio_direction(64, 0); omap_set_gpio_dataout(38, 0); omap_set_gpio_direction(38, 0); omap_set_gpio_dataout(43, 0); omap_set_gpio_direction(43, 0); omap_set_gpio_dataout(42, 0); omap_set_gpio_direction(42, 0); omap_set_gpio_dataout(34, 0); omap_set_gpio_direction(34, 0); omap_set_gpio_dataout(111, 1); omap_set_gpio_direction(111, 0); omap_set_gpio_dataout(65, 0); omap_set_gpio_direction(65, 0); // enable internal speaker amplifier omap_set_gpio_dataout(175, 0); omap_set_gpio_direction(175, 0); // shutdown external speaker amplifier omap_set_gpio_dataout(176, 0); omap_set_gpio_direction(176, 0); // select internal microphone omap_set_gpio_dataout(161, 0); omap_set_gpio_direction(161, 0); // External I2C Bus enable omap_set_gpio_dataout(177, 0); omap_set_gpio_direction(177, 0); omap_free_gpio(27); omap_free_gpio(34); omap_free_gpio(38); omap_free_gpio(40); omap_free_gpio(41); omap_free_gpio(42); omap_free_gpio(43); omap_free_gpio(61); omap_free_gpio(64); omap_free_gpio(65); omap_free_gpio(94); omap_free_gpio(95); omap_free_gpio(98); omap_free_gpio(111); omap_free_gpio(136); omap_free_gpio(137); omap_free_gpio(138); omap_free_gpio(144); omap_free_gpio(145); omap_free_gpio(146); omap_free_gpio(161); omap_free_gpio(162); omap_free_gpio(175); omap_free_gpio(177); omap_free_gpio(186); printf("%s: initialize all peripherals done\n", __func__); twl4030_keypad_init(); // TODO: thermal shutdown and dynamic frequency scaling // TPS659XX PHY 3.3 V recovery workaround // Status bits read from companion chip and OMAP twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_BACKUP_REG_G); //TWL_BACKUP_REG_G - set in thermal driver status_bits.thermal = data; twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_RTC_STATUS_REG); //TWL_RTC_STATUS_REG status_bits.rtc_power_up = (data & TWL_RTC_STATUS_POWER_UP) ? 1 : 0; status_bits.rtc_alarm = (data & TWL_RTC_STATUS_ALARM) ? 1 : 0; status_bits.rtc_event = (data & (TWL_RTC_STATUS_ONE_D_EVENT | TWL_RTC_STATUS_ONE_H_EVENT | TWL_RTC_STATUS_ONE_M_EVENT | TWL_RTC_STATUS_ONE_S_EVENT))? 1 : 0; twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_RTC_INTERRUPTS_REG); //TWL_RTC_INTERRUPTS_REG status_bits.rtc_it_timer = (data & TWL_RTC_INTERRUPTS_IT_TIMER) ? 1 : 0; status_bits.rtc_it_alarm = (data & TWL_RTC_INTERRUPTS_IT_ALARM) ? 1 : 0; twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_STS_BOOT); //TWL_STS_BOOT status_bits.watchdog_reset = (data & (1<<5)) ? 1 : 0;//TWL_WATCHDOG_RESET twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_STS_HW_CONDITIONS); //TWL_STS_HW_CONDITIONS status_bits.sts_pwon = (data & 1) ? 1 : 0; //STS_PWON status_bits.sts_warmreset = (data & (1<<3)) ? 1 : 0; //STS_WARMRESET twl4030_i2c_read_u8(TWL4030_CHIP_RTC, &data, TWL_PWR_ISR1); //TWL_PWR_ISR1 status_bits.isr_pwron = (data & STARTON_RTC) ? 1 : 0; status_bits.isr_rtc_it = (data & STARTON_PWON) ? 1 : 0; status_bits.prm_rstst = readl(OMAP_PRCM_PRM_RSTST); char str[9]; sprintf(str, "%d", status_bits.bits); setenv("hw_stat", str); printf("Status bits [0x%x] [%s]\n", status_bits.bits, str); printf("Board Revision A317 (%d)\n", board_revision); sprintf(str, "%s", "A-317"); setenv("product", str); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; /* * Configure drive strength for IO cells */ *(ulong *)(CONTROL_PROG_IO1) &= ~(PRG_I2C2_PULLUPRESX); beagle_identify(); twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); switch (beagle_revision) { case REVISION_AXBX: printf("Beagle Rev Ax/Bx\n"); setenv("mpurate", "600"); break; case REVISION_CX: printf("Beagle Rev C1/C2/C3\n"); MUX_BEAGLE_C(); setenv("mpurate", "600"); break; case REVISION_C4: printf("Beagle Rev C4\n"); MUX_BEAGLE_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); setenv("mpurate", "720"); break; case REVISION_XM: printf("Beagle xM Rev A\n"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); setenv("mpurate", "1000"); break; default: printf("Beagle unknown 0x%02x\n", beagle_revision); } /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); /* Set GPIOs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; /* Enable i2c2 pullup resisters */ writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); switch (get_board_revision()) { case REVISION_AXBX: printf("Beagle Rev Ax/Bx\n"); setenv("beaglerev", "AxBx"); break; case REVISION_CX: printf("Beagle Rev C1/C2/C3\n"); setenv("beaglerev", "Cx"); MUX_BEAGLE_C(); break; case REVISION_C4: printf("Beagle Rev C4\n"); setenv("beaglerev", "C4"); MUX_BEAGLE_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM_AB: printf("Beagle xM Rev A/B\n"); setenv("beaglerev", "xMAB"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; case REVISION_XM_C: printf("Beagle xM Rev C\n"); setenv("beaglerev", "xMC"); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); break; default: printf("Beagle unknown 0x%02x\n", get_board_revision()); MUX_BEAGLE_XM(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); } switch (get_expansion_id()) { case TINCANTOOLS_ZIPPY: printf("Recognized Tincantools Zippy board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); setenv("buddy", "zippy"); break; case TINCANTOOLS_ZIPPY2: printf("Recognized Tincantools Zippy2 board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); setenv("buddy", "zippy2"); break; case TINCANTOOLS_TRAINER: printf("Recognized Tincantools Trainer board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); MUX_TINCANTOOLS_ZIPPY(); MUX_TINCANTOOLS_TRAINER(); setenv("buddy", "trainer"); break; case TINCANTOOLS_SHOWDOG: printf("Recognized Tincantools Showdow board (rev %d %s)\n", expansion_config.revision, expansion_config.fab_revision); /* Place holder for DSS2 definition for showdog lcd */ setenv("defaultdisplay", "showdoglcd"); setenv("buddy", "showdog"); break; case KBADC_BEAGLEFPGA: printf("Recognized KBADC Beagle FPGA board\n"); MUX_KBADC_BEAGLEFPGA(); setenv("buddy", "beaglefpga"); break; case LW_BEAGLETOUCH: printf("Recognized Liquidware BeagleTouch board\n"); setenv("buddy", "beagletouch"); break; case BRAINMUX_LCDOG: printf("Recognized Brainmux LCDog board\n"); setenv("buddy", "lcdog"); break; case BRAINMUX_LCDOGTOUCH: printf("Recognized Brainmux LCDog Touch board\n"); setenv("buddy", "lcdogtouch"); break; case BBTOYS_WIFI: printf("Recognized BeagleBoardToys WiFi board\n"); MUX_BBTOYS_WIFI() setenv("buddy", "bbtoys-wifi"); break;; case BBTOYS_VGA: printf("Recognized BeagleBoardToys VGA board\n"); break;; case BBTOYS_LCD: printf("Recognized BeagleBoardToys LCD board\n"); break;; case BCT_BRETTL3: printf("Recognized bct electronic GmbH brettl3 board\n"); break; case BCT_BRETTL4: printf("Recognized bct electronic GmbH brettl4 board\n"); break; case LSR_COM6L_ADPT: printf("Recognized LSR COM6L Adapter Board\n"); MUX_BBTOYS_WIFI() setenv("buddy", "lsr-com6l-adpt"); break; case BEAGLE_NO_EEPROM: printf("No EEPROM on expansion board\n"); setenv("buddy", "none"); break; default: printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor); setenv("buddy", "unknown"); } if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); twl4030_power_init(); switch (get_board_revision()) { case REVISION_XM_AB: twl4030_led_init(TWL4030_LED_LEDEN_LEDBON); break; default: twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); break; } /* Set GPIO states before they are made outputs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); dieid_num_r(); #ifdef CONFIG_VIDEO_OMAP3 beagle_dvi_pup(); beagle_display_init(); omap3_dss_enable(); #endif #ifdef CONFIG_USB_MUSB_OMAP2PLUS musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); #endif return 0; }
/* * Routine: misc_init_r * Description: display die ID */ int misc_init_r(void) { dieid_num_r(); return 0; }
/* * Routine: misc_init_r * Description: Configure board specific parts */ int misc_init_r(void) { struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; bool generate_fake_mac = false; u32 value; /* Enable i2c2 pullup resisters */ value = readl(&prog_io_base->io1); value &= ~(PRG_I2C2_PULLUPRESX); writel(value, &prog_io_base->io1); printf("WINGZ energy \nIoT group \n CDAC Bangalore\n"); setenv("musb", "musb_hdrc.fifo_mode=5"); MUX_WINGZ_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, TWL4030_PM_RECEIVER_VAUX2_VSEL_18, TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, TWL4030_PM_RECEIVER_DEV_GRP_P1); if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); twl4030_power_init(); twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); /* Set GPIO states before they are made outputs */ writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, &gpio6_base->setdataout); writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); /* Configure GPIOs to output */ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); dieid_num_r(); #ifdef CONFIG_VIDEO_OMAP3 gpio_request(170, "dvi"); gpio_direction_output(170, 0); gpio_set_value(170, 1); //beagle_display_init(); omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH); omap3_dss_panel_config(&dvid_cfg); omap3_dss_enable(); #endif #ifdef CONFIG_USB_MUSB_OMAP2PLUS musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); #endif if (generate_fake_mac) { u32 id[4]; get_dieid(id); usb_fake_mac_from_die_id(id); } return 0; }
int misc_init_r(void) { DECLARE_GLOBAL_DATA_PTR; #ifdef CONFIG_DRIVER_OMAP34XX_I2C unsigned char data; printf("Hardware arch: %s rev: %s\n", arch_string(gd->bd->bi_arch_number), rev_string(gd->bd->bi_board_revision)); extern int twl4030_init_battery_charging(void); i2c_init(CFG_I2C_SPEED, CFG_I2C_SLAVE); (void) twl4030_usb_init(); twl4030_power_reset_init(); /* see if we need to activate the power button startup */ #if defined(CONFIG_3621EVT1A) /* turn on long pwr button press reset*/ data = 0x40; i2c_write(0x4b, 0x46, 1, &data, 1); printf("Power Button Active\n"); printf("Keep TP in reset \n"); gpio_pin_init(46, GPIO_OUTPUT, GPIO_HIGH); printf("Keep Audio codec under reset \n"); gpio_pin_init(37, GPIO_OUTPUT, GPIO_LOW); printf("Power on Audio codec\n"); gpio_pin_init(103, GPIO_OUTPUT, GPIO_HIGH); printf("Take TP out of reset \n"); gpio_pin_init(46, GPIO_OUTPUT, GPIO_LOW); #endif char *s = getenv("pbboot"); if (s) { /* figure out why we have booted */ i2c_read(0x4b, 0x3a, 1, &data, 1); /* if status is non-zero, we didn't transition * from WAIT_ON state */ if (data) { printf("Transitioning to Wait State (%x)\n", data); /* clear status */ data = 0; i2c_write(0x4b, 0x3a, 1, &data, 1); /* put PM into WAIT_ON state */ data = 0x01; i2c_write(0x4b, 0x46, 1, &data, 1); /* no return - wait for power shutdown */ while (1) {;} } printf("Transitioning to Active State (%x)\n", data); /* turn on long pwr button press reset*/ data = 0x40; i2c_write(0x4b, 0x46, 1, &data, 1); printf("Power Button Active\n"); } #endif tps65921_keypad_init(); dieid_num_r(); return (0); }