| 280 | #endif |
| 281 | |
| 282 | int rt_hw_i2c_init(void) |
| 283 | { |
| 284 | struct rt_i2c_bus_device *busdev; |
| 285 | |
| 286 | #ifdef BSP_USING_I2C0 |
| 287 | static struct rt_i2c_bus_device i2c_dev0; |
| 288 | busdev = &i2c_dev0; |
| 289 | |
| 290 | #ifdef RT_USING_I2C_BITOPS |
| 291 | fpioa_set_function(BSP_I2C0_SCL_PIN, FUNC_RESV0); |
| 292 | fpioa_set_function(BSP_I2C0_SDA_PIN, FUNC_RESV0); |
| 293 | |
| 294 | rt_pin_write(BSP_I2C0_SCL_PIN, PIN_LOW); |
| 295 | rt_pin_write(BSP_I2C0_SDA_PIN, PIN_LOW); |
| 296 | rt_pin_mode(BSP_I2C0_SCL_PIN, PIN_MODE_INPUT_PULLUP); |
| 297 | rt_pin_mode(BSP_I2C0_SDA_PIN, PIN_MODE_INPUT_PULLUP); |
| 298 | |
| 299 | static pin_info_t pin0; |
| 300 | pin0.scl = get_pin_channel(BSP_I2C0_SCL_PIN); |
| 301 | pin0.sda = get_pin_channel(BSP_I2C0_SDA_PIN); |
| 302 | bit_ops_0.data = (void *)&pin0; |
| 303 | |
| 304 | busdev->priv = (void *)&bit_ops_0; |
| 305 | rt_i2c_bit_add_bus(busdev, "i2c0"); |
| 306 | #else |
| 307 | |
| 308 | busdev->ops = &i2c_ops; |
| 309 | busdev->priv = (void *)I2C0_BASE_ADDR; |
| 310 | |
| 311 | i2c_init(I2C_DEVICE_0, 0, 7, 100000); |
| 312 | rt_i2c_bus_device_register(busdev, "i2c0"); |
| 313 | #endif |
| 314 | #endif |
| 315 | |
| 316 | #ifdef BSP_USING_I2C1 |
| 317 | static struct rt_i2c_bus_device i2c_dev1; |
| 318 | busdev = &i2c_dev1; |
| 319 | |
| 320 | #ifdef RT_USING_I2C_BITOPS |
| 321 | fpioa_set_function(BSP_I2C1_SCL_PIN, FUNC_RESV0); |
| 322 | fpioa_set_function(BSP_I2C1_SDA_PIN, FUNC_RESV0); |
| 323 | |
| 324 | rt_pin_write(BSP_I2C1_SCL_PIN, PIN_LOW); |
| 325 | rt_pin_write(BSP_I2C1_SDA_PIN, PIN_LOW); |
| 326 | rt_pin_mode(BSP_I2C1_SCL_PIN, PIN_MODE_INPUT_PULLUP); |
| 327 | rt_pin_mode(BSP_I2C1_SDA_PIN, PIN_MODE_INPUT_PULLUP); |
| 328 | |
| 329 | static pin_info_t pin1; |
| 330 | pin1.scl = get_pin_channel(BSP_I2C1_SCL_PIN); |
| 331 | pin1.sda = get_pin_channel(BSP_I2C1_SDA_PIN); |
| 332 | bit_ops_1.data = (void *)&pin1; |
| 333 | |
| 334 | busdev->priv = (void *)&bit_ops_1; |
| 335 | rt_i2c_bit_add_bus(busdev, "i2c1"); |
| 336 | #else |
| 337 | |
| 338 | busdev->ops = &i2c_ops; |
| 339 | busdev->priv = (void *)I2C1_BASE_ADDR; |
nothing calls this directly
no test coverage detected