Beispiel #1
0
static cyg_uint8
eeprom_getb(int more)
{
    int i;
    cyg_uint8 b = 0;

    HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
    hal_delay_us(5);

    for (i = 7; i >= 0; i--) {
	b <<= 1;
	if (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA))
	    b |= 1;
	CLK_HI();
	hal_delay_us(5);
	CLK_LO();
	hal_delay_us(5);
    }
    HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);
    if (more)
	DATA_LO();
    else
	DATA_HI();
    hal_delay_us(5);
    CLK_HI();
    hal_delay_us(5);
    CLK_LO();
    hal_delay_us(5);

    return b;
}
Beispiel #2
0
static int
eeprom_putb(cyg_uint8 b)
{
    int i;

    for (i = 7; i >= 0; i--) {
	if (b & (1 << i))
	    DATA_HI();
	else
	    DATA_LO();
	CLK_HI();
	hal_delay_us(5);
	CLK_LO();
	hal_delay_us(5);
    }
    HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA);
    CLK_HI();
    hal_delay_us(5);
    i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1;
    CLK_LO();
    hal_delay_us(5);

    DATA_HI();
    HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA);

    return i;
}
Beispiel #3
0
void write_pixel(int bit)
{
    for(int i = 0; i < 4; i++) {
        if (bit)
            MOSI_HI();
        else
            MOSI_LO();
        CLK_LO();
        __no_operation();
        CLK_HI();
    }
}
Beispiel #4
0
static void
eeprom_stop(void)
{
    int i;
    
    hal_delay_us(5);
    DATA_LO();
    hal_delay_us(5);
    CLK_HI();
    hal_delay_us(5);
    DATA_HI();
    hal_delay_us(5);
    CLK_LO();
    hal_delay_us(5);
    CLK_HI();
    hal_delay_us(5);
}
Beispiel #5
0
void AspiData(u8 Para_data)
{
    int i=8;
    CLK_HI();
    A0_HI();
    NCS_LO();
    while (i--) {
        CLK_LO();
        if (Para_data&0x80)
            MOSI_HI();
        else
            MOSI_LO();
        Para_data <<= 1;
        __no_operation();
        CLK_HI();
        __no_operation();
    }
    NCS_HI();
    A0_HI();  
}
Beispiel #6
0
/* These are ported from th eopentx driver */
void AspiCmd(u8 Command_Byte)
{
    int i=8;
    A0_LO();
    CLK_HI();
    __no_operation();
    NCS_LO();

    while (i--) {
        CLK_LO();
        if (Command_Byte&0x80)
            MOSI_HI();
        else
            MOSI_LO();

        Command_Byte <<= 1;
        CLK_HI();
        __no_operation();
    }

    NCS_HI();  
    A0_HI();
}