mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-25 07:51:09 +08:00
bsps/beagle: register i2c device at initialization
This commit is contained in:
committed by
Christian Mauderer
parent
c1a1f2c8da
commit
a4e96cfb0a
@@ -186,16 +186,16 @@ static int am335x_i2c_reset( bbb_i2c_bus *bus )
|
||||
|
||||
bus->con_reg = 0;
|
||||
regs->BBB_I2C_CON = bus->con_reg;
|
||||
udelay( 50000 );
|
||||
rtems_counter_delay_nanoseconds(50000000);
|
||||
|
||||
regs->BBB_I2C_SYSC = AM335X_I2C_SYSC_SRST;
|
||||
udelay( 1000 );
|
||||
rtems_counter_delay_nanoseconds(1000000);
|
||||
regs->BBB_I2C_CON = AM335X_I2C_CON_I2C_EN;
|
||||
|
||||
while ( !( regs->BBB_I2C_SYSS & AM335X_I2C_SYSS_RDONE )
|
||||
&& timeout >= 0 ) {
|
||||
--timeout;
|
||||
udelay( 100 );
|
||||
rtems_counter_delay_nanoseconds(100000);
|
||||
}
|
||||
|
||||
if ( timeout <= 0 ) {
|
||||
|
||||
@@ -94,16 +94,6 @@ int am335x_i2c_bus_register(
|
||||
rtems_vector_number irq
|
||||
);
|
||||
|
||||
static inline int bbb_register_i2c_0( void )
|
||||
{
|
||||
return am335x_i2c_bus_register(
|
||||
BBB_I2C_0_BUS_PATH,
|
||||
AM335X_I2C0_BASE,
|
||||
I2C_BUS_CLOCK_DEFAULT,
|
||||
BBB_I2C0_IRQ
|
||||
);
|
||||
}
|
||||
|
||||
static inline int bbb_register_i2c_1( void )
|
||||
{
|
||||
return am335x_i2c_bus_register(
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
#include <bsp/irq-generic.h>
|
||||
#include <bsp/fdt.h>
|
||||
#include <bsp/linker-symbols.h>
|
||||
#include <bsp/i2c.h>
|
||||
#include <rtems/sysinit.h>
|
||||
|
||||
#include "bspdebug.h"
|
||||
|
||||
@@ -41,3 +43,22 @@ uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
|
||||
{
|
||||
return intr[0];
|
||||
}
|
||||
|
||||
static void bbb_i2c_0_initialize(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = am335x_i2c_bus_register(BBB_I2C_0_BUS_PATH,
|
||||
AM335X_I2C0_BASE,
|
||||
I2C_BUS_CLOCK_DEFAULT,
|
||||
BBB_I2C0_IRQ);
|
||||
if (err != 0) {
|
||||
printk("rtems i2c-0: Device could not be registered (%d)", err);
|
||||
}
|
||||
}
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
bbb_i2c_0_initialize,
|
||||
RTEMS_SYSINIT_LAST,
|
||||
RTEMS_SYSINIT_ORDER_LAST
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user