void audiohw_set_frequency(int fsel)
{
    int reg_val;
    reg_val = tsc2100_readreg(CONTROL_PAGE2, TSAC1_ADDRESS);
    
    reg_val &= ~(0x07<<3);
    
    switch(fsel) 
    {
    case HW_FREQ_8:
        reg_val |= (0x06<<3);
        break;
    case HW_FREQ_11:
        reg_val |= (0x04<<3);
        break;
    case HW_FREQ_22:
        reg_val |= (0x02<<3);
        break;
    case HW_FREQ_44:
    default:
        break;
    }

    tsc2100_writereg(CONTROL_PAGE2, TSAC1_ADDRESS, reg_val);
}
void audiohw_init(void)
{
    short val = tsc2100_readreg(TSAC4_PAGE, TSAC4_ADDRESS);
    /* disable DAC PGA soft-stepping */
    val |= TSAC4_DASTDP;
    
    tsc2100_writereg(TSAC4_PAGE, TSAC4_ADDRESS, val);
}
static void audiohw_mute(bool mute)
{
    short vol = tsc2100_readreg(TSDACGAIN_PAGE, TSDACGAIN_ADDRESS);
    /* left  mute bit == 1<<15
       right mute bit == 1<<7
     */
    if (mute) 
    {
        vol |= (1<<15)|(1<<7);
    } else 
    {
        vol &= ~((1<<15)|(1<<7));
    }
    is_muted = mute;
    tsc2100_writereg(TSDACGAIN_PAGE, TSDACGAIN_ADDRESS, vol);
}
Exemple #4
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]);
}
Exemple #5
0
void tsc2100_keyclick(void)
{
    // 1100 0100 0001 0000
    //short val = 0xC410;
    tsc2100_writereg(TSAC2_PAGE, TSAC2_ADDRESS, tsc2100_readreg(TSAC2_PAGE, TSAC2_ADDRESS)&0x8000);
}