3,461
社区成员




#include "i2c_config.h"
#define ENABLE_I2C_04
#define ENABLE_I2C_06 // add this declare
BP?CODE/TZ.XF.5.24/trustzone_images/core/settings/buses/qup_accesscontrol/qupv3/config/kailu
a/QUPAC_Access.c
const QUPv3_se_security_permissions_type qupv3_perms_default[] =
{
...
{ QUPV3_1_SE6, QUPV3_PROTOCOL_I2C, QUPV3_MODE_FIFO, AC_HLOS, TRUE,
TRUE, FALSE },
...
};
BP-CODE/BOOT.MXF.2.1.1/boot_images/boot/QcomPkg/SocPkg/Kailua/Common/Core.fdf
...
INF QcomPkg/Drivers/I2CDxe/I2CDxe.inf
...
[LibraryClasses]
I2CApiLib
[Protocols]
gQcomI2CProtocolGuid
5.I2C读写使⽤⽅法
i2c_open -> i2c_read/i2c_write -> i2c_close
#include "i2c_api.h"
6.关于 i2c_instance 如何使⽤
⾼通基线代码对i2c分组定义是从0开始的,如 BP?CODE/TZ.XF.5.24/trustzone_images/core/settings/buses/i2c/qupv3/config/kailua/tz/i2c_devcfg.
#ifdef ENABLE_I2C_00
static i2c_plat_gpio_properties tz_i2c_00_sda = {"qup1_se0_l0", {
TLMM_GPIO_INPUT, TLMM_GPIO_PULL_UP, TLMM_GPIO_2MA }, 00 };
static i2c_plat_gpio_properties tz_i2c_00_scl = {"qup1_se0_l1", {
TLMM_GPIO_INPUT, TLMM_GPIO_PULL_UP, TLMM_GPIO_2MA }, 00 };
#endif
但 i2c_instance 枚举是从1开始的,如 BP?CODE/BOOT.MXF.2.1.1/boot_images/boot/QcomPkg/Include/Protocol/prot_inc/i2c_common.h
typedef enum
{
I2C_INSTANCE_001 = 1, /**< Instance 01. */
I2C_INSTANCE_002, /**< Instance 02. */
I2C_INSTANCE_003, /**< Instance 03. */
I2C_INSTANCE_004, /**< Instance 04. */
I2C_INSTANCE_005, /**< Instance 05. */
I2C_INSTANCE_006, /**< Instance 06. */
I2C_INSTANCE_007, /**< Instance 07. */
I2C_INSTANCE_008, /**< Instance 08. */
I2C_INSTANCE_009, /**< Instance 09. */
I2C_INSTANCE_010, /**< Instance 10. */
I2C_INSTANCE_011, /**< Instance 11. */
I2C_INSTANCE_012, /**< Instance 12. */
I2C_INSTANCE_013, /**< Instance 13. */
I2C_INSTANCE_014, /**< Instance 14. */
I2C_INSTANCE_015, /**< Instance 15. */
I2C_INSTANCE_016, /**< Instance 16. */
I2C_INSTANCE_017, /**< Instance 17. */
I2C_INSTANCE_018, /**< Instance 18. */
I2C_INSTANCE_019, /**< Instance 19. */
I2C_INSTANCE_020, /**< Instance 20. */
I2C_INSTANCE_021, /**< Instance 21. */
I2C_INSTANCE_022, /**< Instance 22. */
I2C_INSTANCE_023, /**< Instance 23. */
I2C_INSTANCE_024, /**< Instance 24. */
I2C_INSTANCE_025, /**< Instance 25. */
I2C_INSTANCE_026, /**< Instance 26. */
I2C_INSTANCE_MAX, /**< Instance Max. */
} i2c_instance;
所以,使⽤i2c_open,第⼀个参数是 I2C_INSTANCE_007