/** * @brief This function disables the device or places the device in * software reset if it does not power up in a disabled state. * It may be used to initialize registers that require a value * different from the power-up state and are common to one or * more of the other component modules. * * @return State * @retval true if the configuration was successful * @retval false if some failure occurred * * @note: This function leaves the device in a disabled state until the * SiiDrvDeviceRelease function is called. * *****************************************************************************/ bool_t SiiDrvDeviceInitialize ( void ) { bool_t success = false; uint16_t deviceID; uint8_t revison; #if defined(__KERNEL__) gDriverContext.chip_revision = 0xFF; #endif SiiHwReset(HW_RESET_PERIOD, HW_RESET_DELAY); for ( ;; ) { SiiDrvSoftwareReset(RX_M__SRST__SRST); deviceID = SiiRegRead( REG_DEV_IDH_RX ); deviceID = ( deviceID << 8) | SiiRegRead( REG_DEV_IDL_RX ); revison = SiiRegRead( REG_DEV_REV ); #if defined(__KERNEL__) gDriverContext.chip_revision = revison; #endif if ( 0x5293 == deviceID ) { DEBUG_PRINT( MSG_ALWAYS, "Device ID: %04X\n", (int)deviceID ); DEBUG_PRINT( MSG_ALWAYS, "Device Revision: %02X\n", (int)revison ); } else { //DEBUG_PRINT( MSG_ALWAYS, "\n Device Id check failed!\n" ); //break; } #ifdef SK_TX_EVITA if ( !SiiDrvEvitaInit()) { DEBUG_PRINT( MSG_ALWAYS, "\n SiiDrvEvitaInitialize failed!\n" ); break; } #endif if ( !SiiMhlRxInitialize()) { DEBUG_PRINT( MSG_ALWAYS, "\n SkAppDeviceInitCbus failed!\n" ); break; } if ( !SiiDrvRxInitialize()) { DEBUG_PRINT( MSG_ALWAYS, "\n SkAppDeviceInitRx failed!\n" ); break; } #ifdef MHAWB_SUPPORT mhawb_init(); #endif SiiDrvSwitchPortType(SiiPortType_HDMI); success = true; break; } return( success ); }
static void CBusResetToIdle (void) { SiiMhlRxInitialize(); }