Esempio n. 1
0
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;
}
Esempio n. 2
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;
}