int mymain(void) { int offset = 0x2E; // .wav data offset short * p = (short *)0x22000000; // use "loadb 0x22000000" to put wav file here first IIC_init(); WM8960_init(); IIS_init(); uart_putchar('o'); uart_putchar('k'); while (1) { #ifdef DEBUG IISTXD = offset++; // delay(); #else // polling Primary Tx FIFO0 full status indication. while((IISCON & (1<<8)) == (1<<8)); IISTXD = *(p+offset); offset++; if (offset > (882046-0x2e) /2) // 882046 is file size offset = 0x2E; // replay from wav data offset #endif } while (1); return 0; }
int vga_init(void) { IIC_init(); IIC_write(0xEA, 0x4, 0x20); return 0; }
void EEPROM_Init(void) { #if (defined I2C_SW && I2C_SW == 1) sw_i2c_init(); #else IIC_init(); #endif }
void MPU_init() { IIC_init(); do { MPU_Sigle_Write(PWR_MGMT_1, 0x00); MPU_Sigle_Write(SMPLRT_DIV, 0x07); MPU_Sigle_Write(CONFIG, 0x06); MPU_Sigle_Write(GYRO_CONFIG, 0x18); MPU_Sigle_Write(ACCEL_CONFIG, 0x01); } while(IMU_NOT_CONNECTED); }
void MPU_init() { IIC_init(); delay(500); MPU_Sigle_Write(PWR_MGMT_1, 0x00); MPU_Sigle_Write(SMPLRT_DIV, 0x07); MPU_Sigle_Write(CONFIG, 0x06); MPU_Sigle_Write(GYRO_CONFIG, 0x18); MPU_Sigle_Write(ACCEL_CONFIG, 0x01); LED1 = MPU_Sigle_Read(WHO_AM_I) == 0x68?0:1; //LED1 = MPU_Sigle_Read(WHO_AM_I) == 0x68?1:0; }
void RTC_test() { struct DATE date1 = {00,24,16,07,3,1,15}; struct DATE date2 = {0}; struct DATE date3 = {0}; while(1){ UINT8 i; IIC_init(); //set_date(date); //P8563_init(); for(i = 0;i<7;i++) g8563_Store[i] = 0; date2 = get_date(); }}
static int __init s3c2410_kbd_init(void) { int ret; int oldiiccon; int flags; ret = set_external_irq(IRQ_KBD, EXT_FALLING_EDGE, GPIO_PULLUP_EN); local_irq_save(flags); IIC_init(); Set_IIC_mode(ZLG7289_IICCON, &oldiiccon); ret=IIC_Read(ZLG7290_ADDR, 0); //restore IICCON Set_IIC_mode(oldiiccon, NULL); local_irq_save(flags); DPRINTK("zlg7290 system register=0x%x\n", ret); KBD_CLOSE_INT(); ret = register_chrdev(0, DEVICE_NAME, &s3c2410_fops); if (ret < 0) { printk(DEVICE_NAME " can't get major number\n"); return ret; } kbdMajor = ret; /* Enable touch interrupt */ ret = request_irq(IRQ_KBD, s3c2410_isr_kbd,SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_kbd); if (ret) { return ret; } kbddev.head = kbddev.tail = 0; kbddev.kbdmode= KEY_NULL; init_waitqueue_head(&(kbddev.wq)); #ifdef CONFIG_DEVFS_FS devfs_kbd_dir = devfs_mk_dir(NULL, "keyboard", NULL); devfs_kbdraw = devfs_register(devfs_kbd_dir, "0raw", DEVFS_FL_DEFAULT, kbdMajor, KBDRAW_MINOR, S_IFCHR | S_IRUSR | S_IWUSR, &s3c2410_fops, NULL); #endif printk (DEVICE_NAME"\tinitialized\n"); return 0; }
INT8U RTC_DS1307_Init(void) { #if (defined I2C_SW && I2C_SW == 1) INT8U ret = NO_I2C_ACK; CRITICAL_SECTION_START(); sw_i2c_init(); CRITICAL_SECTION_END(); sw_i2c_start(); // Send start signal ret = sw_i2c_write(DS1307Address); // Send identifer I2C address (10100000b) delay_time(I2C_DELAY); sw_i2c_stop(); return ((ret == OK_I2C_ACK) ? TRUE : FALSE); #else IIC_init(); #endif }