static int ade_power_up(struct ade_hw_ctx *ctx) { int ret; ret = clk_prepare_enable(ctx->media_noc_clk); if (ret) { DRM_ERROR("failed to enable media_noc_clk (%d)\n", ret); return ret; } ret = reset_control_deassert(ctx->reset); if (ret) { DRM_ERROR("failed to deassert reset\n"); return ret; } ret = clk_prepare_enable(ctx->ade_core_clk); if (ret) { DRM_ERROR("failed to enable ade_core_clk (%d)\n", ret); return ret; } ade_init(ctx); ctx->power_on = true; return 0; }
int main () { uint8_t v_TempCnt_u8r, v_Dummy_u8r, v_RdLcycmode_u8r; nrk_setup_ports(); nrk_setup_uart(UART_BAUDRATE_115K2); nrk_kprintf( PSTR("Starting up...\r\n") ); ////////////////////////////////////////////////// F_ChkIntEntry_U8R = 0; nrk_led_clr(BLUE_LED); nrk_led_clr(GREEN_LED); nrk_led_clr(ORANGE_LED); nrk_led_clr(RED_LED); for(v_TempCnt_u8r=0;v_TempCnt_u8r<100;v_TempCnt_u8r++) V_TxBuff_U8R[v_TempCnt_u8r]=v_TempCnt_u8r+'a'; V_RdPtr_U32R = 0; slip_tx(&V_TxBuff_U8R[V_RdPtr_U32R],C_SlipPktSize,&V_TxBuff_U8R[C_CircBuffSize-1],C_CircBuffSize); signal_one=nrk_signal_create(); sei(); DDRD &= ~(_BV(PORTD3)); //Making INT3 pin as input EIMSK = 0x00; EICRA = 0x80; EIMSK = 0x08; printf("#"); //Set ADE in normal power mode PM0=1 (PE2), PM!=0 (PE3) DDRE |= _BV(PORTE2) | _BV(PORTE3); PORTE |= _BV(PORTE2); PORTE &= ~(_BV(PORTE3)); while(F_ChkIntEntry_U8R==0); while(EIMSK !=0); //Enable SPI Master, Set Clock rate fck/4 SPCR = 0x01; SPCR |= _BV(SPE) | _BV(MSTR) | _BV(CPOL) | _BV(CPHA); PORTB |= _BV(PORTB0);//default state of SS should be low v_RdLcycmode_u8r=0; //This segment below is added because it was observed that the 7878 //SPI or the ATMEL SPI takes some time to start. So waiting till //some register gives its default value printf("Wait.."); while(v_RdLcycmode_u8r!=0x78) v_RdLcycmode_u8r = ade_read8(LCYCMODE); printf("\r\n7878 Ready"); if(ade_init() < 0) printf("\nInit failed"); else printf("\nInit Success"); V_Status1RdWr_U32R = ade_read32(STATUS1); ade_write32(STATUS1, V_Status1RdWr_U32R); ///////////////////////////////////////////////// nrk_init(); nrk_time_set(0,0); nrk_create_taskset (); nrk_start(); return 0; }