예제 #1
0
static void init_adc(void) {
	/* Configure the ADC */
	REG_STORE(AT91C_PMC_PCER, (1 << AT91C_ID_ADC));
	REG_STORE(AT91C_ADC_MR, 0);
	REG_ORIN(AT91C_ADC_MR, AT91C_ADC_TRGEN_DIS);
	REG_ORIN(AT91C_ADC_MR, 0x00000500); // 4MHz
	REG_ORIN(AT91C_ADC_MR, 0x001f0000); // 64uS
	REG_ORIN(AT91C_ADC_MR, 0x03000000); // 750nS
	REG_STORE(AT91C_ADC_CHER, AT91C_ADC_CH6 | AT91C_ADC_CH4);
	REG_STORE(AT91C_ADC_CR, AT91C_ADC_START);
}
예제 #2
0
파일: omap3_clk.c 프로젝트: Kefir0192/embox
static int omap3_clk_config(struct time_dev_conf *conf) {
	volatile struct gptimerxx_x *gptimer = GPTIMER1_BASE;

	REG_ORIN(CM_FCLKEN_WKUP, 1);
	REG_ORIN(CM_ICLKEN_WKUP, 1);
	REG_ANDIN(CM_CLKSEL_WKUP, ~1);

	REG_STORE(&gptimer->cfg, 0x2);

	REG_STORE(&gptimer->tpir, 232000);
	REG_STORE(&gptimer->tnir, -768000);

	REG_STORE(&gptimer->tcrr, OMAP_LOAD_VALUE);
	REG_STORE(&gptimer->tldr, OMAP_LOAD_VALUE);

	REG_STORE(&gptimer->tclr, GPTIMER_TCLR_START | GPTIMER_TCLR_AUTORELOAD);

	REG_STORE(&gptimer->tier, GPTIMER_TIER_OVERFLOW);
	REG_STORE(&gptimer->twer, GPTIMER_TIER_OVERFLOW);

	return 0;
}
예제 #3
0
static int ti81xx_start(struct usb_hcd *hcd) {
	struct ti81xx_usb *tiusb = hcd2ti(hcd);
	int ret;

	assert(tiusb == (void *) 0x47401000);

	ret = irq_attach(TI8168_USB0_IRQ, ti81xx_irq, 0, hcd, "ti8168 usb0 irq");
	if (0 != ret) {
		return ret;
	}

	REG_ORIN(&tiusb->ctrl, TI81_USB_CTRL_RST);

	while((REG_LOAD(&tiusb->ctrl) & TI81_USB_CTRL_RST));

	REG_STORE(&tiusb->phy_utmi, TI81_USB_PHYUTMI_DEFAULT);

	{
		uint32_t regval = REG_LOAD(&tiusb->mode);
		regval &= ~TI81_USB_MODE_IDDIG;
		regval |= 0x80;
		REG_STORE(&tiusb->mode, regval);
	}

	REG_ORIN(0x48140620, 0x00000003);
	REG_ORIN(0x48140624, 0xf);

	REG_STORE(&tiusb->irq_set0, 0xffffffff);
	REG_STORE(&tiusb->irq_set1, TI81_USB_IRQ_STAT1_ALL_BUT_SOF);
	REG8_STORE(&tiusb->m_devctl, TI81_USB_DEVCTL_SESSION);
	REG8_STORE(&tiusb->m_intrusbe, 0xff);

	ti81xx_endp_fifo_init(tiusb);

	return 0;
}
예제 #4
0
static int stm32_uart_setup(struct uart *dev, const struct uart_params *params) {
	struct uart_stm32 *uart = (struct uart_stm32 *) dev->base_addr;

	REG_ORIN(RCC_APB1RSTR,RCC_APB1PWR);
	REG_ORIN(RCC_APB2ENR,RCC_APB2GPIOx);
	REG_ORIN(RCC_APB2ENR,RCC_APB2AFIO);

	REG_ORIN(RCC_APB2ENR,RCC_APB2ENR_USART1EN);

	gpio_settings(UART_GPIO, TX_PIN ,
			GPIO_MODE_OUTPUT | GPIO_MODE_OUT_ALTERNATE);
	gpio_settings(UART_GPIO, RX_PIN, GPIO_MODE_INPUT);

	REG_STORE(&uart->brr, SYS_CLOCK / params->baud_rate);
	REG_ORIN(&uart->cr1, USART_FLAG_RE | USART_FLAG_TE);

	REG_ORIN(&uart->cr1, USART_FLAG_UE);

	return 0;
}