Пример #1
0
/* LTV250QV panel functions */
static void lcd_write_reg(unsigned char reg, unsigned short val)
{
    unsigned char block[3] = {LTV_OPC_INDEX, 0, reg | 0xFF};
    spi_block_transfer(SPI_target_LTV250QV, block, sizeof(block), NULL, 0);
    block[0] = LTV_OPC_DATA;
    block[1] = val >> 8;
    block[2] = val & 0xFF;
    spi_block_transfer(SPI_target_LTV250QV, block, sizeof(block), NULL, 0);
}
Пример #2
0
static void _backlight_write_brightness(int brightness)
{
    uint8_t bl_command[] = {0xA4, 0x00, brightness, 0xA4};
    
    spi_block_transfer(SPI_target_BACKLIGHT, commands[8], 2, (char *)&read_brightness, 2);

//    bl_command[3] = (char) read_brightness;
    
    spi_block_transfer(SPI_target_BACKLIGHT, bl_command, 4, 0, 0);
}
Пример #3
0
void tsc2100_writereg(int page, int address, short value)
{
    unsigned short command = (page << 11)|(address << 5);
    unsigned char out[4] = {command >> 8, command & 0xff,
                            value >> 8,   value & 0xff};
    spi_block_transfer(SPI_target_TSC2100, out, sizeof(out), NULL, 0);
}
Пример #4
0
static void lcd_display_off(void)
{
    /* LQV shutdown sequence */
    lcd_write_reg(LTV_PWRCTL1,  (LTV_VCOMOUT_ENABLE | LTV_DRIVE_CURRENT(5) | LTV_SUPPLY_CURRENT(5)));
    sleep_ms(20);
    
    lcd_write_reg(LTV_PWRCTL1,  (LTV_DRIVE_CURRENT(5) | LTV_SUPPLY_CURRENT(5)));
    lcd_write_reg(LTV_GATECTL2, (LTV_NW_INV_1LINE | LTV_FTI(3) | LTV_FWI(3)));
    lcd_write_reg(LTV_PWRCTL2,  0);
    sleep_ms(20);
    
    lcd_write_reg(LTV_PWRCTL1,  0);
    sleep_ms(10);
    unsigned char temp[1];
    temp[0] = 0;
    spi_block_transfer(SPI_target_LTV250QV, temp, sizeof(temp), NULL, 0);
    
    IO_GIO_BITCLR2 = (1 << 4);
    sleep_ms(5);
    IO_GIO_BITCLR2 = (1 << 7);
    sleep_ms(5);
    IO_GIO_BITCLR2 = (1 << 0);
    sleep_ms(2);
    IO_GIO_BITCLR2 = (1 << 8);
    IO_GIO_BITCLR2 = (1 << 5);
    
    /* Disable main power */
    IO_GIO_BITCLR2 |= (1 << 3);
    
    enable_venc(false);
    
    lcd_on = false;
}
Пример #5
0
short tsc2100_readreg(int page, int address)
{
    unsigned short command = 0x8000|(page << 11)|(address << 5);
    unsigned char out[] = {command >> 8, command & 0xff};
    unsigned char in[2];
    spi_block_transfer(SPI_target_TSC2100, out, sizeof(out), in, sizeof(in));
    return (in[0]<<8)|in[1];
}
Пример #6
0
void tsc2100_read_data(void)
{
    int page = 0, address = 0;
    unsigned int i;
    unsigned short command = 0x8000|(page << 11)|(address << 5);
    unsigned char out[] = {command >> 8, command & 0xff};
    unsigned char *p_adc_data=(unsigned char *)&adc_data;
    
    adc_status|=tsc2100_readreg(TSSTAT_PAGE, TSSTAT_ADDRESS);
    
    spi_block_transfer(SPI_target_TSC2100,
                       out, sizeof(out), (char *)adc_data, sizeof(adc_data));
                       
    for(i=0; i<sizeof(adc_data); i+=2)
        adc_data[i>>1]=(short)(p_adc_data[i]<<8|p_adc_data[i+1]);
}
Пример #7
0
bool backlight_hw_init(void)
{
    short read_value;

    IO_GIO_BITCLR2 = (1 << 5); /* output low (backlight/lcd on) */

    spi_block_transfer(SPI_target_BACKLIGHT, commands[6], 2, 0, 0);

    spi_block_transfer(SPI_target_BACKLIGHT, commands[8], 2, (char*)&read_value, 2);

    if( (read_value & 0xFF) < 0xD0 )
    {
        spi_block_transfer(SPI_target_BACKLIGHT, commands[3], 2, 0, 0);
        spi_block_transfer(SPI_target_BACKLIGHT, commands[4], 2, 0, 0);
        spi_block_transfer(SPI_target_BACKLIGHT, commands[9], 2, 0, 0);
        spi_block_transfer(SPI_target_BACKLIGHT, commands[0], 2, 0, 0);
    }

    spi_block_transfer(SPI_target_BACKLIGHT, commands[2], 2, 0, 0);

    backlight_hw_brightness(backlight_brightness);
    return true;
}