Beispiel #1
0
/**
 * @brief: initial ak3916 machine 
 * 
 * @author: caolianming
 * @date: 2014-01-09
 */
static void __init ak3910_init_machine(void)
{
	adc1_init();

	spi_register_board_info(ak39_spi_board_dev, ARRAY_SIZE(ak39_spi_board_dev));	
		
	ak39_spi1_device.dev.platform_data = &ak39_spi1_info;

	ak39_motor0_device.dev.platform_data = &ak39_motor0_pdata;
	ak39_motor1_device.dev.platform_data = &ak39_motor1_pdata;
		
	ak39_mmc_device.dev.platform_data = &mmc_plat_data;
	ak39_sdio_device.dev.platform_data = &sdio_plat_data;

	ak39_crypto_device.dev.platform_data = &akcrypto_pdata;

	ak39_usb_otg_hcd_device.dev.platform_data = &akotghc_plat_data;
	ak39_mac_device.dev.platform_data = &ak39_mac_pdata;

	ak39_led_pdev.dev.platform_data = &led_pdata;
	ak39_gpio_keys_device.dev.platform_data = &gpio_keys_platform_data;	
	ak39_battery_power.dev.platform_data = &ak39_bat_info;

	ak39_camera_interface.dev.platform_data = &ak39_camera_info;
	
	platform_add_devices(ak3910_platform_devices, 
				ARRAY_SIZE(ak3910_platform_devices));
	
	l2_init();
	
	return;
}
Beispiel #2
0
/**
 * @brief 
 * @param 
 * @retval 
 */
static void device_init(void)
{
	port_init();
#ifdef INTERFACE_4WIRE_SPI
	spi1_init();
#endif
	iic_init();
	adc1_init();
}
Beispiel #3
0
uint16_t adc1_read(int chan)
{
    if((chan < 0) || (7 < chan))
	return 0;
    
    //print1("start adc");
    adc1_init();
    AT91C_BASE_ADC->ADC_CHER = (1 << chan);
    AT91C_BASE_ADC->ADC_CR = 0x2;
    while(!(AT91C_BASE_ADC->ADC_SR & (1 << chan)));
    uint32_t *ptr = (uint32_t*)&(AT91C_BASE_ADC->ADC_CDR0);
    ptr += chan;
    uint16_t res = *ptr;
    //print1("end adc");
    return res;
}