mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-11-22 18:54:39 +02:00
qi-return-i2c-to-peripheral.patch
Return IO to peripheral mode for i2c at end of init Signed-off-by: Andy Green <andy@openmoko.com>
This commit is contained in:
parent
6e84650e2f
commit
0a72b19c3f
@ -74,6 +74,7 @@ struct board_api {
|
|||||||
int (*is_this_board)(void);
|
int (*is_this_board)(void);
|
||||||
void (*port_init)(void);
|
void (*port_init)(void);
|
||||||
void (*putc)(char);
|
void (*putc)(char);
|
||||||
|
void (*close)(void);
|
||||||
struct kernel_source kernel_source[8];
|
struct kernel_source kernel_source[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -324,6 +324,21 @@ static void putc_gta02(char c)
|
|||||||
serial_putc_s3c24xx(GTA02_DEBUG_UART, c);
|
serial_putc_s3c24xx(GTA02_DEBUG_UART, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void close_gta02(void)
|
||||||
|
{
|
||||||
|
/* clear any pending timeouts by reading interrupts */
|
||||||
|
|
||||||
|
i2c_read_sync(&bb_s3c24xx, PCF50633_I2C_ADS, PCF50633_REG_INT1);
|
||||||
|
i2c_read_sync(&bb_s3c24xx, PCF50633_I2C_ADS, PCF50633_REG_INT2);
|
||||||
|
i2c_read_sync(&bb_s3c24xx, PCF50633_I2C_ADS, PCF50633_REG_INT3);
|
||||||
|
i2c_read_sync(&bb_s3c24xx, PCF50633_I2C_ADS, PCF50633_REG_INT4);
|
||||||
|
i2c_read_sync(&bb_s3c24xx, PCF50633_I2C_ADS, PCF50633_REG_INT5);
|
||||||
|
|
||||||
|
/* set I2C GPIO back to peripheral unit */
|
||||||
|
|
||||||
|
(bb_s3c24xx.close)();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* our API for bootloader on this machine
|
* our API for bootloader on this machine
|
||||||
*/
|
*/
|
||||||
@ -338,6 +353,7 @@ const struct board_api board_api_gta02 = {
|
|||||||
.is_this_board = is_this_board_gta02,
|
.is_this_board = is_this_board_gta02,
|
||||||
.port_init = port_init_gta02,
|
.port_init = port_init_gta02,
|
||||||
.putc = putc_gta02,
|
.putc = putc_gta02,
|
||||||
|
.close = close_gta02,
|
||||||
/* these are the ways we could boot GTA02 in order to try */
|
/* these are the ways we could boot GTA02 in order to try */
|
||||||
.kernel_source = {
|
.kernel_source = {
|
||||||
[0] = {
|
[0] = {
|
||||||
|
@ -252,6 +252,12 @@ void bootloader_second_phase(void)
|
|||||||
params->hdr.tag = ATAG_NONE;
|
params->hdr.tag = ATAG_NONE;
|
||||||
params->hdr.size = 0;
|
params->hdr.size = 0;
|
||||||
|
|
||||||
|
/* give board implementation a chance to shut down
|
||||||
|
* anything it may have going on, leave GPIO set for Linux
|
||||||
|
*/
|
||||||
|
if (this_board->close)
|
||||||
|
(this_board->close)();
|
||||||
|
|
||||||
puts ("Starting --->\n\n");
|
puts ("Starting --->\n\n");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user