/*! * Function to create and initiate template command buffer for ADC. This * template will be written to Panel memory. */ static void init_channel_template(int disp) { /* template command buffer for ADC is 32 */ uint32_t tempCmd[TEMPLATE_BUF_SIZE]; uint32_t i = 0; memset(tempCmd, 0, sizeof(uint32_t) * TEMPLATE_BUF_SIZE); /* setup update display region */ /* whole the screen during init */ /*WRITE Y COORDINATE CMND */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, 0x07); /*WRITE Y START ADDRESS CMND [22:8] */ tempCmd[i++] = ipu_adc_template_gen(WR_YADDR, 1, SINGLE_STEP, 0x01); /*WRITE X COORDINATE CMND */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, 0x06); /*WRITE X START ADDRESS CMND [7:0] */ tempCmd[i++] = ipu_adc_template_gen(WR_XADDR, 1, SINGLE_STEP, 0x01); /*WRITE RAM CMND */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, 0x0E); /*WRITE DATA CMND and STP */ tempCmd[i++] = ipu_adc_template_gen(WR_DATA, 1, STOP, 0); ipu_adc_write_template(disp, tempCmd, true); }
/*! * Function to create and initiate template command buffer for ADC. This * template will be written to Panel memory. */ static void init_channel_template(int disp) { /* template command buffer for ADC is 32 */ uint32_t tempCmd[TEMPLATE_BUF_SIZE]; uint32_t i = 0; memset(tempCmd, 0, sizeof(uint32_t) * TEMPLATE_BUF_SIZE); /* setup update display region */ /* whole the screen during init */ /*WRITE Y COORDINATE CMND */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, SD_PSET); /*WRITE Y START ADDRESS CMND LSB[22:8] */ tempCmd[i++] = ipu_adc_template_gen(WR_YADDR, 1, SINGLE_STEP, 0x01); /*WRITE Y START ADDRESS CMND MSB[22:16] */ tempCmd[i++] = ipu_adc_template_gen(WR_YADDR, 1, SINGLE_STEP, 0x09); /*WRITE Y STOP ADDRESS CMND LSB */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 1, SINGLE_STEP, MXCFB_SCREEN_HEIGHT - 1); /*WRITE Y STOP ADDRESS CMND MSB */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 1, SINGLE_STEP, 0); /*WRITE X COORDINATE CMND */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, SD_CSET); /*WRITE X ADDRESS CMND LSB[7:0] */ tempCmd[i++] = ipu_adc_template_gen(WR_XADDR, 1, SINGLE_STEP, 0x01); /*WRITE X ADDRESS CMND MSB[22:8] */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 1, SINGLE_STEP, 0); /*WRITE X STOP ADDRESS CMND LSB */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 1, SINGLE_STEP, MXCFB_SCREEN_WIDTH + 1); /*WRITE X STOP ADDRESS CMND MSB */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 1, SINGLE_STEP, 0); /*WRITE MEMORY CMND MSB */ tempCmd[i++] = ipu_adc_template_gen(WR_CMND, 0, SINGLE_STEP, RAMWR); /*WRITE DATA CMND and STP */ tempCmd[i++] = ipu_adc_template_gen(WR_DATA, 1, STOP, 0); ipu_adc_write_template(disp, tempCmd, true); }