i2c-lld: add to PDK
authorJacob Stiffler <j-stiffler@ti.com>
Fri, 1 Nov 2019 18:54:52 +0000 (14:54 -0400)
committerJacob Stiffler <j-stiffler@ti.com>
Fri, 1 Nov 2019 18:54:52 +0000 (14:54 -0400)
Development of i2c-lld has been relocated here from:
* Repo: https://git.ti.com/keystone-rtos/i2c-lld
* Branch: master
* Commit ID: 191f9975d344751a520ca66215a6fe76810fb211

Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
363 files changed:
packages/ti/drv/i2c/.gitignore [new file with mode: 0644]
packages/ti/drv/i2c/I2C.h [new file with mode: 0644]
packages/ti/drv/i2c/I2Cver.h [new file with mode: 0644]
packages/ti/drv/i2c/I2Cver.h.xdt [new file with mode: 0755]
packages/ti/drv/i2c/Settings.xdc.xdt [new file with mode: 0644]
packages/ti/drv/i2c/build/buildlib.xs [new file with mode: 0644]
packages/ti/drv/i2c/build/makefile.mk [new file with mode: 0755]
packages/ti/drv/i2c/build/makefile_icss_i2c.mk [new file with mode: 0644]
packages/ti/drv/i2c/build/makefile_indp.mk [new file with mode: 0644]
packages/ti/drv/i2c/build/makefile_profile.mk [new file with mode: 0644]
packages/ti/drv/i2c/build/makefile_profile_indp.mk [new file with mode: 0644]
packages/ti/drv/i2c/config.bld [new file with mode: 0755]
packages/ti/drv/i2c/config_mk.bld [new file with mode: 0644]
packages/ti/drv/i2c/docs/I2C_LLD_SDS.pdf [new file with mode: 0755]
packages/ti/drv/i2c/docs/I2C_LLD_SoftwareManifest.html [new file with mode: 0755]
packages/ti/drv/i2c/docs/Module.xs [new file with mode: 0755]
packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.doc [new file with mode: 0755]
packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.pdf [new file with mode: 0755]
packages/ti/drv/i2c/docs/doxyfile.xdt [new file with mode: 0755]
packages/ti/drv/i2c/docs/tifooter.htm [new file with mode: 0755]
packages/ti/drv/i2c/docs/tiheader.htm [new file with mode: 0755]
packages/ti/drv/i2c/docs/tilogo.gif [new file with mode: 0755]
packages/ti/drv/i2c/docs/titagline.gif [new file with mode: 0755]
packages/ti/drv/i2c/example/Module.xs [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_bbbAM335x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_evmAM335x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_iceAMIC110_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_icev2AM335x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_skAM335x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_bbbam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_evmam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_iceamic110.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_icev2am335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_skam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_evmAM437x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_idkAM437x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_skAM437x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_evmam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_idkam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_skam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/I2C_BasicExample_idkAM571x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/i2c_arm_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/I2C_BasicExample_idkAM571x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/i2c_test_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/I2C_BasicExample_idkAM571x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/i2c_m4_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_callback_mode_idkAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_evmAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_idkAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_ErrorRecovery_evmAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_evmAM572x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_idkAM572x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_evmAM52x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_idkAM52x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/m4/bios/I2C_BasicExample_evmAM572x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/m4/bios/I2C_BasicExample_idkAM572x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/m4/bios/i2c_m4_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am572x/m4/bios/i2c_m4_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/armv7/bios/I2C_BasicExample_callback_mode_idkAM574x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/armv7/bios/I2C_BasicExample_idkAM574x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/armv7/bios/i2c_arm_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/c66/bios/I2C_BasicExample_idkAM574x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/c66/bios/i2c_test_idkAM54x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/m4/bios/I2C_BasicExample_idkAM574x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/am574x/m4/bios/i2c_m4_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/c6657/c66/bios/I2C_BasicExample_C6657_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/c6657/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/c6678/c66/bios/I2C_BasicExample_C6678H_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/c6678/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/armv7/bios/I2C_BasicExample_evmDRA72x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/armv7/bios/I2C_BasicExample_evmDRA75x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/armv7/bios/i2c_arm_example.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/c66/bios/I2C_BasicExample_evmDRA72x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/c66/bios/I2C_BasicExample_evmDRA75x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/c66/bios/I2C_BasicExample_evmDRA78x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/c66/bios/i2c_c66_example.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/m4/bios/I2C_BasicExample_evmDRA72x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/m4/bios/I2C_BasicExample_evmDRA75x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/m4/bios/I2C_BasicExample_evmDRA78x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/dra7xx/m4/bios/i2c_m4_example.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2e/armv7/bios/I2C_BasicExample_K2E_armExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2e/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2e/c66/bios/I2C_BasicExample_K2E_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2e/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2g/armv7/bios/I2C_BasicExample_evmK2G_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/armv7/bios/I2C_BasicExample_iceK2G_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/armv7/bios/I2C_ErrorRecovery_evmK2G_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2g/armv7/bios/i2c_arm_ice.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/c66/bios/I2C_BasicExample_evmK2G_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/c66/bios/I2C_BasicExample_iceK2G_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2g/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2g/c66/bios/i2c_test_ice.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/k2h/armv7/bios/I2C_BasicExample_K2H_armExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2h/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2h/c66/bios/I2C_BasicExample_K2H_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2h/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2k/c66/bios/I2C_BasicExample_K2K_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2l/armv7/bios/I2C_BasicExample_K2L_armExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2l/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2l/c66/bios/I2C_BasicExample_K2L_Evm_c66xExampleProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/k2l/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/example/eeprom_read/omapl137/arm9/bios/I2C_BasicExample_evmOMAPL137_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/omapl137/arm9/bios/i2c_arm.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/omapl137/c674/bios/I2C_BasicExample_evmOMAPL137_c674xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/omapl137/c674/bios/i2c_test.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/I2C_board.h [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/I2C_log.c [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/I2C_log.h [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read_callback.c [new file with mode: 0644]
packages/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read_recovery.c [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am335x/armv7/bios/I2C_FwExample_icev2AM335x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am335x/armv7/bios/i2c_arm_icev2am335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am437x/armv7/bios/I2C_FwExampleIcss0_idkAM437x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am437x/armv7/bios/I2C_FwExample_idkAM437x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am437x/armv7/bios/i2c_arm_idkam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am437x/armv7/bios/i2c_arm_idkam437x_icss0.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/armv7/bios/I2C_FwExample_idkAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/armv7/bios/i2c_arm_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/c66/bios/I2C_FwExample_idkAM572x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/c66/bios/i2c_c66_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/m4/bios/I2C_FwExample_idkAM572x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am572x/m4/bios/i2c_m4_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/armv7/bios/I2C_FwExample_idkAM574x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/armv7/bios/i2c_arm_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/c66/bios/I2C_FwExample_idkAM574x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/c66/bios/i2c_c66_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/m4/bios/I2C_FwExample_idkAM574x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/am574x/m4/bios/i2c_m4_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/firmware_example/src/main_test.c [new file with mode: 0644]
packages/ti/drv/i2c/example/i2c_utility/i2c_utility_main.c [new file with mode: 0755]
packages/ti/drv/i2c/example/i2c_utility/makefile [new file with mode: 0755]
packages/ti/drv/i2c/example/tdaxx/led_blink/i2cSample.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/tdaxx/led_blink/makefile [new file with mode: 0644]
packages/ti/drv/i2c/example/tdaxx/led_blink/src/i2c_led_blink.c [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/armv7/bios/I2C_TemperatureSensor_evmAM572x_armExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/armv7/bios/i2c_arm_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/c66/bios/I2C_TemperatureSensor_evmAM572x_c66xExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/c66/bios/i2c_test_evmAM52x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/m4/bios/I2C_TemperatureSensor_evmAM572x_m4ExampleProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/am572x/m4/bios/i2c_m4_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/src/I2C_log.c [new file with mode: 0644]
packages/ti/drv/i2c/example/temperature_sensor/src/main_temperature_sensor.c [new file with mode: 0644]
packages/ti/drv/i2c/firmware/Module.xs [new file with mode: 0755]
packages/ti/drv/i2c/firmware/icss_i2c/docs/I2C_FW_DESIGN_GUIDE.docx [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/docs/I2C_FW_DESIGN_GUIDE.pdf [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_function.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_macros.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_protocol.asm [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_scheduler.asm [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_scheduler.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/I2C_smbus.asm [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/firmware_version.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_cfg_regs.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_ctrl_regs.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_defines.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_i2c.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_iep_regs.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_intc_regs.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/icss_miirt_regs.h [new file with mode: 0644]
packages/ti/drv/i2c/firmware/icss_i2c/src/pru.cmd [new file with mode: 0755]
packages/ti/drv/i2c/i2c_component.mk [new file with mode: 0755]
packages/ti/drv/i2c/makefile [new file with mode: 0644]
packages/ti/drv/i2c/package.bld [new file with mode: 0644]
packages/ti/drv/i2c/package.xdc [new file with mode: 0755]
packages/ti/drv/i2c/package.xs [new file with mode: 0755]
packages/ti/drv/i2c/soc/I2C_soc.h [new file with mode: 0644]
packages/ti/drv/i2c/soc/I2C_v0.h [new file with mode: 0644]
packages/ti/drv/i2c/soc/I2C_v1.h [new file with mode: 0644]
packages/ti/drv/i2c/soc/I2C_v2.h [new file with mode: 0644]
packages/ti/drv/i2c/soc/Module.xs [new file with mode: 0644]
packages/ti/drv/i2c/soc/am335x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/am437x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/am571x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/am572x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/am574x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/am65xx/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/c6657/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/c6678/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/dra72x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/dra75x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/dra78x/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/fw_mem_section.h [new file with mode: 0644]
packages/ti/drv/i2c/soc/j721e/I2C_soc.c [new file with mode: 0755]
packages/ti/drv/i2c/soc/k2e/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/k2g/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/k2h/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/k2k/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/k2l/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/omapl137/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/omapl138/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/tda2ex/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/tda2px/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/tda2xx/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/tda3xx/I2C_soc.c [new file with mode: 0644]
packages/ti/drv/i2c/soc/tii2c_pruss_intc_mapping.h [new file with mode: 0644]
packages/ti/drv/i2c/src/I2C_drv.c [new file with mode: 0644]
packages/ti/drv/i2c/src/I2C_drv_log.h [new file with mode: 0644]
packages/ti/drv/i2c/src/I2C_osal.h [new file with mode: 0644]
packages/ti/drv/i2c/src/Module.xs [new file with mode: 0755]
packages/ti/drv/i2c/src/src_files_common.mk [new file with mode: 0644]
packages/ti/drv/i2c/src/v0/I2C_v0.c [new file with mode: 0644]
packages/ti/drv/i2c/src/v1/I2C_v1.c [new file with mode: 0644]
packages/ti/drv/i2c/src/v2/I2C_v2.c [new file with mode: 0644]
packages/ti/drv/i2c/test/Module.xs [new file with mode: 0755]
packages/ti/drv/i2c/test/baremetal/Readme.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/baremetal/c66/makefile [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/I2C_Test_bbbAM335x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/I2C_Test_evmAM335x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/I2C_Test_iceAMIC110_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/I2C_Test_icev2AM335x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/I2C_Test_skAM335x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/i2c_arm_bbbam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/i2c_arm_evmam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/i2c_arm_iceamic110.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/i2c_arm_icev2am335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am335x/armv7/bios/i2c_arm_skam335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/I2C_Test_evmAM437x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/I2C_Test_idkAM437x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/I2C_Test_skAM437x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/i2c_arm_evmam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/i2c_arm_idkam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am437x/armv7/bios/i2c_arm_skam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/armv7/bios/I2C_BasicExample_idkAM571x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/armv7/bios/i2c_arm_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/c66/bios/I2C_BasicExample_idkAM571x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/c66/bios/i2c_test_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/m4/bios/I2C_BasicExample_idkAM571x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am571x/m4/bios/i2c_m4_idkAM571x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/armv7/bios/I2C_BasicExample_evmAM572x_SMP_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/armv7/bios/I2C_BasicExample_evmAM572x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/armv7/bios/I2C_BasicExample_idkAM572x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/c66/bios/I2C_BasicExample_evmAM572x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/c66/bios/I2C_BasicExample_idkAM572x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/c66/bios/i2c_test_evmAM52x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/c66/bios/i2c_test_idkAM52x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/m4/bios/I2C_BasicExample_evmAM572x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/m4/bios/I2C_BasicExample_idkAM572x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/m4/bios/i2c_m4_evmAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am572x/m4/bios/i2c_m4_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/armv7/bios/I2C_BasicExample_idkAM574x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/armv7/bios/i2c_arm_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/c66/bios/I2C_BasicExample_idkAM574x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/c66/bios/i2c_test_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/m4/bios/I2C_BasicExample_idkAM574x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am574x/m4/bios/i2c_m4_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am65xx/i2cEepromTest_a53.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am65xx/i2cEepromTest_r5.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/am65xx/mpu.xs [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/c6657/c66/bios/I2C_BasicExample_C6657_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/c6657/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/c6657/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/c6678/c66/bios/I2C_BasicExample_C6678_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/c6678/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/c6678/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/j721e/i2cEepromTest_a72.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/j721e/i2cEepromTest_r5f.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/j721e/mpu.xs [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/k2e/armv7/bios/I2C_BasicExample_K2E_armTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2e/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2e/c66/bios/I2C_BasicExample_K2E_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2e/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2e/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2g/armv7/bios/I2C_BasicExample_evmK2G_armTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2g/armv7/bios/I2C_BasicExample_iceK2G_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/k2g/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2g/armv7/bios/i2c_arm_ice.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/k2g/c66/bios/I2C_BasicExample_evmK2G_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2g/c66/bios/I2C_BasicExample_iceK2G_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/k2g/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2g/c66/bios/i2c_test_ice.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/k2g/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2h/armv7/bios/I2C_BasicExample_K2H_armTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2h/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2h/c66/bios/I2C_BasicExample_K2H_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2h/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2h/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2k/c66/bios/I2C_BasicExample_K2K_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2l/armv7/bios/I2C_BasicExample_K2L_armTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2l/armv7/bios/i2c_arm.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2l/c66/bios/I2C_BasicExample_K2L_Evm_c66xTestProject.txt [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2l/c66/bios/i2c_test.cfg [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/k2l/linker.cmd [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/makefile [new file with mode: 0755]
packages/ti/drv/i2c/test/eeprom_read/omapl137/arm9/bios/I2C_BasicExample_evmOMAPL137_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/omapl137/arm9/bios/i2c_arm.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/omapl137/c674/bios/I2C_BasicExample_evmOMAPL137_c674xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/omapl137/c674/bios/i2c_test.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/src/I2C_board.h [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/src/I2C_log.c [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/src/I2C_log.h [new file with mode: 0644]
packages/ti/drv/i2c/test/eeprom_read/src/main_test.c [new file with mode: 0755]
packages/ti/drv/i2c/test/firmware_test/am335x/armv7/bios/I2C_FwTest_icev2AM335x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am335x/armv7/bios/i2c_arm_icev2am335x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am437x/armv7/bios/I2C_FwTestIcss0_idkAM437x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am437x/armv7/bios/I2C_FwTest_idkAM437x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am437x/armv7/bios/i2c_arm_idkam437x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am437x/armv7/bios/i2c_arm_idkam437x_icss0.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/armv7/bios/I2C_FwTest_idkAM572x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/armv7/bios/i2c_arm_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/c66/bios/I2C_FwTest_idkAM572x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/c66/bios/i2c_c66_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/m4/bios/I2C_FwTest_idkAM572x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am572x/m4/bios/i2c_m4_idkAM572x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/armv7/bios/I2C_FwTest_idkAM574x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/armv7/bios/i2c_arm_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/c66/bios/I2C_FwTest_idkAM574x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/c66/bios/i2c_c66_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/m4/bios/I2C_FwTest_idkAM574x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/am574x/m4/bios/i2c_m4_idkAM574x.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/src/I2C_log.c [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/src/I2C_log.h [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/src/main_test.c [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/src/test_utils.c [new file with mode: 0644]
packages/ti/drv/i2c/test/firmware_test/src/test_utils.h [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/armv7/bios/I2C_Master_idkAM572x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/armv7/bios/I2C_Slave_idkAM572x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/armv7/bios/i2c_arm_idkAM572x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/armv7/bios/i2c_arm_idkAM572x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/c66/bios/I2C_Master_idkAM572x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/c66/bios/I2C_Slave_idkAM572x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/c66/bios/i2c_c66_idkAM572x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/c66/bios/i2c_c66_idkAM572x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/m4/bios/I2C_Master_idkAM572x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/m4/bios/I2C_Slave_idkAM572x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/m4/bios/i2c_m4_idkAM572x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am572x/m4/bios/i2c_m4_idkAM572x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/armv7/bios/I2C_Master_idkAM574x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/armv7/bios/I2C_Slave_idkAM574x_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/armv7/bios/i2c_arm_idkAM574x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/armv7/bios/i2c_arm_idkAM574x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/c66/bios/I2C_Master_idkAM574x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/c66/bios/I2C_Slave_idkAM574x_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/c66/bios/i2c_c66_idkAM574x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/c66/bios/i2c_c66_idkAM574x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/m4/bios/I2C_Master_idkAM574x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/m4/bios/I2C_Slave_idkAM574x_m4TestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/m4/bios/i2c_m4_idkAM574x_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/am574x/m4/bios/i2c_m4_idkAM574x_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/armv7/bios/I2C_Master_evmK2G_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/armv7/bios/I2C_Slave_evmK2G_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/armv7/bios/i2c_arm_k2g_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/armv7/bios/i2c_arm_k2g_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/c66/bios/I2C_Master_evmK2G_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/c66/bios/I2C_Slave_evmK2G_c66xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/c66/bios/i2c_c66_k2g_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/k2g/c66/bios/i2c_c66_k2g_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/arm9/bios/I2C_Master_lcdkOMAPL138_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/arm9/bios/I2C_Slave_lcdkOMAPL138_armTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/arm9/bios/i2c_arm_omapl138_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/arm9/bios/i2c_arm_omapl138_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/c674/bios/I2C_Master_lcdkOMAPL138_c674xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/c674/bios/I2C_Slave_lcdkOMAPL138_c674xTestProject.txt [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/c674/bios/i2c_c674_omapl138_master.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/omapl138/c674/bios/i2c_c674_omapl138_slave.cfg [new file with mode: 0644]
packages/ti/drv/i2c/test/master_slave/src/main_test.c [new file with mode: 0644]
packages/ti/drv/i2c/test/src/I2C_log.c [new file with mode: 0644]
packages/ti/drv/i2c/test/src/I2C_log.h [new file with mode: 0644]

diff --git a/packages/ti/drv/i2c/.gitignore b/packages/ti/drv/i2c/.gitignore
new file mode 100644 (file)
index 0000000..b66891a
--- /dev/null
@@ -0,0 +1,31 @@
+*.swp
+*~
+.dlls
+.executables
+.interfaces
+.libraries
+.xdcenv.mak
+Settings.h
+Settings.xdc
+build/c66/
+build/k2[heklg]/
+build/am57*/
+build/am335x/
+build/am437x/
+build/m4/
+build/armv7/
+docs/Doxyfile
+docs/doxygen/
+example/eeprom_read/*/*/bios/src
+example/*/eeprom_read/*/bios/src
+example/firmware_example/*/*/bios/src
+test/eeprom_read/*/*/bios/src
+test/firmware_test/*/*/bios/src
+firmware/icss_i2c/bin/
+i2cver.h
+lib/
+package.mak
+package/
+packages/
+*.o
+*.dep
diff --git a/packages/ti/drv/i2c/I2C.h b/packages/ti/drv/i2c/I2C.h
new file mode 100644 (file)
index 0000000..4109633
--- /dev/null
@@ -0,0 +1,668 @@
+/*
+ * Copyright (C) 2014-2018 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+ *  \defgroup DRV_I2C_MODULE I2C Driver
+ *
+ *  @{
+ */
+/* @} */
+
+/**
+ *  \ingroup DRV_I2C_MODULE
+ *  \defgroup DRV_I2C_API_MODULE I2C Driver API
+ *            I2C driver interface
+ *
+ *  @{
+ */
+
+/** ============================================================================
+ *  @file       I2C.h
+ *
+ *  @brief      I2C driver interface
+ *
+ *  The I2C header file should be included in an application as follows:
+ *  @code
+ *  #include <ti/drv/i2c/I2C.h>
+ *  @endcode
+ *
+ *  # Operation #
+ *  The I2C driver operates as a master or a slave on a single-master I2C bus,
+ *  in either I2C_MODE_BLOCKING or I2C_MODE_CALLBACK.
+ *  In blocking mode, the task's execution is blocked during the I2C
+ *  transaction. When the transfer has completed, code execution will resume.
+ *  In callback mode, the task's execution is not blocked, allowing for other
+ *  transactions to be queued up or to process some other code. When the
+ *  transfer has completed, the I2C driver will call a user-specified callback
+ *  function (from a HWI context).
+ *
+ *  The APIs in this driver serve as an interface to a typical TI-RTOS
+ *  application. The specific peripheral implementations are responsible to
+ *  create all the SYS/BIOS specific primitives to allow for thread-safe
+ *  operation.
+ *
+ *  ## Opening the driver #
+ *
+ *  @code
+ *  I2C_Handle      handle;
+ *  I2C_Params      params;
+ *  I2C_Transaction i2cTransaction;
+ *
+ *  I2C_Params_init(&params);
+ *  params.transferMode  = I2C_MODE_CALLBACK;
+ *  params.transferCallbackFxn = someI2CCallbackFunction;
+ *  handle = I2C_open(someI2C_configIndexValue, &params);
+ *  if (!handle) {
+ *      System_printf("I2C did not open");
+ *  }
+ *  @endcode
+ *
+ *  ## Transferring data #
+ *  A I2C transaction with a I2C peripheral is started by calling
+ *  I2C_transfer(). The details of the I2C transaction is specified with a
+ *  I2C_Transaction data structure. This structure allows for any of the three
+ *  types of transactions: Write, Read, or Write/Read. Each transfer is
+ *  performed atomically with the I2C master or slave peripheral.
+ *
+ *  @code
+ *  I2C_Transaction i2cTransaction;
+ *
+ *  i2cTransaction.writeBuf = someWriteBuffer;
+ *  i2cTransaction.writeCount = numOfBytesToWrite;
+ *
+ *  i2cTransaction.readBuf = someReadBuffer;
+ *  i2cTransaction.readCount = numOfBytesToRead;
+ *
+ *  i2cTransaction.slaveAddress = some7BitI2CSlaveAddress;
+ *
+ *  ret = I2C_transfer(handle, &i2cTransaction);
+ *  if (!ret) {
+ *      System_printf("Unsuccessful I2C transfer");
+ *  }
+ *  @endcode
+ *
+ *  # Implementation #
+ *
+ *  This module serves as the main interface for TI-RTOS
+ *  applications. Its purpose is to redirect the module's APIs to specific
+ *  peripheral implementations which are specified using a pointer to a
+ *  I2C_FxnTable.
+ *
+ *  The I2C driver interface module is joined (at link time) to a
+ *  NULL-terminated array of I2C_Config data structures named *I2C_config*.
+ *  *I2C_config* is implemented in the application with each entry being an
+ *  instance of a I2C peripheral. Each entry in *I2C_config* contains a:
+ *  - (I2C_FxnTable *) to a set of functions that implement a I2C peripheral
+ *  - (void *) data object that is associated with the I2C_FxnTable
+ *  - (void *) hardware attributes that are associated to the I2C_FxnTable
+ *
+ *  # Instrumentation #
+ *  The I2C driver interface produces log statements if instrumentation is
+ *  enabled.
+ *
+ *  ============================================================================
+ */
+
+#ifndef I2C_H
+#define I2C_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stddef.h>
+/*!
+ * Common I2C_control command code reservation offset.
+ * I2C driver implementations should offset command codes with I2C_CMD_RESERVED
+ * growing positively
+ *
+ * Example implementation specific command codes:
+ * @code
+ * #define I2CXYZ_COMMAND0          I2C_CMD_RESERVED + 0
+ * #define I2CXYZ_COMMAND1          I2C_CMD_RESERVED + 1
+ * @endcode
+ */
+#define I2C_CMD_RESERVED             32
+
+/*!
+ * I2C probe IOCTL. This IOCTL returns I2C_STATUS_SUCCESS if the device
+ * is present. Returns I2C_STATUS_ERROR otherwise.
+ * The argument to this IOCTL is the uint32_t * of the device address.
+ */
+#define I2C_CMD_PROBE               (0U)
+
+/*!
+ * This command sets the i2c bus speed dynamically.
+ * This command returns I2C_STATUS_SUCCESS if the device
+ * is present. Returns I2C_STATUS_ERROR otherwise.
+ * The argument to this accepts the two macros I2C_100kHz, I2C_400kHz.
+ */
+#define I2C_CMD_SET_BUS_FREQUENCY   (1U)
+
+/*!
+ * This command performs bus recovery in case of timeout error.
+ * This command returns I2C_STATUS_SUCCESS if the device
+ * is present. Returns I2C_STATUS_ERROR otherwise.
+ * The argument to this accepts the delay value.
+ */
+#define I2C_CMD_RECOVER_BUS         (2U)
+
+/*!
+ * This command performs SMBUS command and code setup.
+ * This command returns I2C_STATUS_SUCCESS if a valid
+ * smbus cmd is passed. Returns I2C_STATUS_ERROR otherwise.
+ * The argument to this accepts the SMBUS command and its 
+ * subcode.
+ */
+#define I2C_CMD_SMBUS_TYPE          (3U)
+
+/*!
+ * Common I2C_control status code reservation offset.
+ * I2C driver implementations should offset status codes with
+ * I2C_STATUS_RESERVED growing negatively.
+ *
+ * Example implementation specific status codes:
+ * @code
+ * #define I2CXYZ_STATUS_ERROR0     I2C_STATUS_RESERVED - 0
+ * #define I2CXYZ_STATUS_ERROR1     I2C_STATUS_RESERVED - 1
+ * #define I2CXYZ_STATUS_ERROR2     I2C_STATUS_RESERVED - 2
+ * @endcode
+ */
+#define I2C_STATUS_RESERVED         (-((int32_t)32))
+
+/*!
+ * \brief   Successful status code returned by I2C_control().
+ *
+ * I2C_control() returns I2C_STATUS_SUCCESS if the control code was executed
+ * successfully.
+ */
+#define I2C_STATUS_SUCCESS          ((int32_t)(0))
+
+/*!
+ * \brief   Generic error status code returned by I2C_control().
+ *
+ * I2C_control() returns I2C_STATUS_ERROR if the control code was not executed
+ * successfully.
+ */
+#define I2C_STATUS_ERROR           (-((int32_t)1))
+
+/*!
+ * \brief   An error status code returned by I2C_control() for undefined
+ * command codes.
+ *
+ * I2C_control() returns I2C_STATUS_UNDEFINEDCMD if the control code is not
+ * recognized by the driver implementation.
+ */
+#define I2C_STATUS_UNDEFINEDCMD    (-((int32_t)2))
+
+
+/*!
+ * \brief   A status code returned by I2C_transfer().
+ *
+ * I2C_transfer() returns I2C_STS_SUCCESS if the transfer is succesful.
+ */
+#define I2C_STS_SUCCESS           ((int16_t)(1))
+
+/*!
+ * \brief   A restart status code returned by I2C transfer callback
+ *
+ * I2C transfer callback function returns I2C_STS_RESTART if the restart
+ * condition is detected. This status is only valid in slave mode.
+ */
+#define I2C_STS_RESTART           ((int16_t)(2))
+
+/*!
+ * \brief   A error status code returned by I2C_transfer().
+ *
+ * I2C_transfer() returns I2C_STS_ERR if the transfer is failed.
+ */
+#define I2C_STS_ERR               ((int16_t)(0))
+
+/*!
+ * \brief   A error status code returned by I2C_transfer().
+ *
+ * I2C_transfer() returns I2C_STS_ERR_TIMEOUT if the timeout error is occured
+ * during the transfer.
+ */
+#define I2C_STS_ERR_TIMEOUT          (-(int16_t)(1))
+/*!
+ * \brief   I2C bus busy error 
+ */
+#define I2C_STS_ERR_BUS_BUSY         (-(int16_t)(2))
+/*!
+ * \brief   I2C no ack error when no acknowledgement is received 
+ */
+#define I2C_STS_ERR_NO_ACK           (-(int16_t)(3))
+/*!
+ * \brief   I2C Arbitration lost error
+ */
+#define I2C_STS_ERR_ARBITRATION_LOST (-(int16_t)(4))
+/*!
+ * \brief   I2C Bus Access error
+ */
+#define I2C_STS_ERR_ACCESS_ERROR     (-(int16_t)(5))
+/*!
+ * \brief   I2C FW Command Access Failure
+ */
+#define I2C_STS_ERR_COMMAND_FAILURE  (-(int16_t)(6))
+/*!
+ * \brief   I2C FW Invalid Command passed
+ */
+#define I2C_STS_ERR_INVALID_COMMAND  (-(int16_t)(7))
+
+/*!
+ *  @brief      A handle that is returned from a I2C_open() call.
+ */
+typedef struct I2C_Config_s      *I2C_Handle;
+
+ /*!
+  * \brief   I2C_TRANSACTION valid parameter bit fields.
+  *
+  * Valid bit fields supported
+  *
+  * I2C_TRANS_VALID_PARAM_MASTER_MODE
+  * I2C_TRANS_VALID_PARAM_EXPAND_SA
+  *
+  */
+#define I2C_TRANS_VALID_PARAM_MASTER_MODE           (0x00000001U)
+#define I2C_TRANS_VALID_PARAM_EXPAND_SA             (0x00000002U)
+
+/**<
+ *  @brief  I2C transaction
+ *
+ *  This structure defines the nature of the I2C transaction.
+ *
+ *  I2C master mode:
+ *  This structure specifies the buffer and buffer's size that is to be
+ *  written to or read from the I2C slave peripheral.
+ *
+ *  I2C slave mode:
+ *  This structure specifies the buffer and buffer's size that is to be
+ *  read from or written to the I2C master. In restart condition,
+ *  readBuf/writeBuf and readCount/writeCount are used repeatedly for
+ *  every start in one transfer. When each restart happens, driver will
+ *  call back to application with the restart transfer status, and
+ *  application should save the data transferred in the previous start,
+ *  and provide the new data to the current start. When all the starts
+ *  complete (stop condition), driver will call back to application with
+ *  transfer success status, and readBuf/writeBuf and readCount/writeCount
+ *  will only record the data transferred in the last start condition.
+ *
+ *  arg is an optional user supplied argument that will be passed
+ *  to the callback function when the I2C driver is in I2C_MODE_CALLBACK.
+ *  nextPtr is to be only used by the I2C driver.
+ */
+typedef struct I2C_Transaction_s {
+    uint32_t            validParams;        /**< Valid transaction parameter bit fields, to keep backward compatibility
+                                                 if supported bit field of validParams is 0: the driver will use the
+                                                 default configurations, if it is not 0: the driver will use the configuration
+                                                 that is set by the bit field */
+    void                *writeBuf;          /**< master mode: buffer containing data to be written to slave
+                                                 slave mode: buffer containing data to be written to master */
+                                            /*   User input (requested write count) and output (actual write count) fields */
+    size_t              writeCount;         /**< master mode: number of bytes to be written to the slave
+                                                 slave mode: number of bytes to be written to the master */
+
+    void                *readBuf;           /**< master mode: buffer to which data from slave is to be read into
+                                                 slave mode: buffer to which data from master is to be read into */
+                                            /*   User input (requested read count) and output (actual read count) fields */
+    size_t              readCount;          /**< master mode: number of bytes to be read from the slave
+                                                  slave mode: number of bytes to be read to the master */
+
+    uint32_t            slaveAddress;       /**< master mode: input field from user to set the address of I2C
+                                                 slave device;
+                                                 slave mode: output field from driver to report the address
+                                                 of a slave channel when multi-slave channels are supported,
+                                                 if only one channel is supported, this field is ignored */
+
+    void                *arg;               /*!< argument to be passed to the callback function */
+    void                *nextPtr;           /*!< used for queuing in I2C_MODE_CALLBACK mode */
+    uint32_t            timeout;            /*!< Timeout value for i2c transaction */
+
+    bool                masterMode;         /**< I2C master or slave mode */
+    bool                expandSA;           /**< Expand slave address:
+                                                 true: 10-bit address mode, false: 7-bit address mode */
+} I2C_Transaction;
+
+/*!
+ *  @brief  I2C transfer mode
+ *
+ *  I2C_MODE_BLOCKING block task execution while a I2C transfer is in progress
+ *  I2C_MODE_CALLBACK does not block task execution; but calls a callback
+ *  function when the I2C transfer has completed
+ */
+typedef enum I2C_TransferMode_e {
+    I2C_MODE_BLOCKING,  /*!< I2C_transfer blocks execution*/
+    I2C_MODE_CALLBACK   /*!< I2C_transfer queues transactions and does not block */
+} I2C_TransferMode;
+
+/*!
+ *  @brief  I2C callback function
+ *
+ *  User definable callback function prototype. The I2C driver will call the
+ *  defined function and pass in the I2C driver's handle, the pointer to the I2C
+ *  transaction that just completed, and the return value of I2C_transfer.
+ *
+ *  In slave mode, when there is a restart condtion,the driver calls back
+ *  to the application with received data and I2C_STS_RESTART transfer status,
+ *  application needs to provide the restart transmit data in I2C_Transaction
+ *  rsWrToMstBuf. Restart condition only works in callback mode.
+ *
+ *  @param  I2C_Handle          I2C_Handle
+
+ *  @param  I2C_Transaction*    Address of the I2C_Transaction performed
+
+ *  @param  bool                Results of the I2C transaction
+ */
+typedef void (*I2C_CallbackFxn)(I2C_Handle handle, I2C_Transaction * msg, int16_t transferStatus);
+
+/*!
+ *  @brief  I2C bitRate
+ *
+ *  Specify one of the standardized I2C bus bit rates for I2C communications.
+ *  The default is I2C_100kHz.
+ */
+typedef enum I2C_BitRate_e {
+    I2C_100kHz = 0,
+    I2C_400kHz = 1,
+    I2C_1P0Mhz = 2,
+    I2C_3P4Mhz = 3
+} I2C_BitRate;
+
+/*!
+ *  @brief  I2C Parameters
+ *
+ *  I2C parameters are used to with the I2C_open() call. Default values for
+ *  these parameters are set using I2C_Params_init().
+ *
+ *  If I2C_TransferMode is set to I2C_MODE_BLOCKING then I2C_transfer function
+ *  calls will block thread execution until the transaction has completed.
+ *
+ *  If I2C_TransferMode is set to I2C_MODE_CALLBACK then I2C_transfer will not
+ *  block thread execution and it will call the function specified by
+ *  transferCallbackFxn. Sequential calls to I2C_transfer in I2C_MODE_CALLBACK
+ *  mode will put the designated transaction onto an internal queue that
+ *  automatically starts queued transactions after the previous transaction has
+ *  completed. (regardless of error state).
+ *
+ *  I2C_BitRate specifies the I2C bus rate used for I2C communications.
+ *
+ *  @sa     I2C_Params_init()
+ */
+typedef struct I2C_Params_s {
+    I2C_TransferMode    transferMode; /*!< Blocking or Callback mode */
+
+    /* done to get rid of misra warning MISRA.CAST.FUNC_PTR, it complains later where the function address is assigned */
+    void (*transferCallbackFxn)(I2C_Handle i2cHnd, I2C_Transaction * msg, int16_t transferStatus);
+    /* I2C_CallbackFxn     transferCallbackFxn; !< Callback function pointer */
+    I2C_BitRate         bitRate; /*!< I2C bus bit rate */
+    void               *custom;  /*!< Custom argument used by driver
+                                      implementation */
+} I2C_Params;
+
+/**<
+ *  @brief    I2C transaction timeout define
+ */
+#define I2C_WAIT_FOREVER   (~((uint32_t)0U))
+
+/*!
+ *  @brief      A function pointer to a driver specific implementation of
+ *              I2C_close().
+ */
+typedef void        (*I2C_CloseFxn)    (I2C_Handle handle);
+
+/*!
+ *  @brief      A function pointer to a driver specific implementation of
+ *              I2C_control().
+ */
+typedef int32_t         (*I2C_ControlFxn)  (I2C_Handle handle,
+                                        uint32_t cmd,
+                                        void *arg);
+
+/*!
+ *  @brief      A function pointer to a driver specific implementation of
+ *              I2C_init().
+ */
+typedef void        (*I2C_InitFxn)     (I2C_Handle handle);
+
+/*!
+ *  @brief      A function pointer to a driver specific implementation of
+ *              I2C_open().
+ */
+typedef I2C_Handle  (*I2C_OpenFxn)     (I2C_Handle handle,
+                                        const I2C_Params *params);
+
+/*!
+ *  @brief      A function pointer to a driver specific implementation of
+ *              I2C_transfer().
+ */
+typedef int16_t        (*I2C_TransferFxn) (I2C_Handle handle,
+                                        I2C_Transaction *transaction);
+
+/*!
+ *  @brief      The definition of a I2C function table that contains the
+ *              required set of functions to control a specific I2C driver
+ *              implementation.
+ */
+typedef struct I2C_FxnTable_s {
+    /*! Function to close the specified peripheral */
+    I2C_CloseFxn        closeFxn;
+
+    /*! Function to implementation specific control function */
+    I2C_ControlFxn      controlFxn;
+
+    /*! Function to initialize the given data object */
+    I2C_InitFxn         initFxn;
+
+    /*! Function to open the specified peripheral */
+    I2C_OpenFxn         openFxn;
+
+    /*! Function to initiate a I2C data transfer */
+    I2C_TransferFxn     transferFxn;
+} I2C_FxnTable;
+
+/*!
+ *  @brief  I2C Global configuration
+ *
+ *  The I2C_Config structure contains a set of pointers used to characterize
+ *  the I2C driver implementation.
+ *
+ *  This structure needs to be defined before calling I2C_init() and it must
+ *  not be changed thereafter.
+ *
+ *  @sa     I2C_init()
+ */
+typedef struct I2C_Config_s {
+    /*! Pointer to a table of driver-specific implementations of I2C APIs */
+    I2C_FxnTable const *fxnTablePtr;
+
+    /*! Pointer to a driver specific data object */
+    void               *object;
+
+    /*! Pointer to a driver specific hardware attributes structure */
+    void         const *hwAttrs;
+} I2C_Config;
+
+#define I2C_MAX_CONFIG_CNT (14U)
+typedef I2C_Config I2C_config_list[I2C_MAX_CONFIG_CNT];
+
+
+/*!
+ *  @brief  Function to close a I2C peripheral specified by the I2C handle
+ *
+ *  @pre    I2C_open() had to be called first.
+ *
+ *  @param  i2cHnd  A I2C_Handle returned from I2C_open
+ *
+ *  @sa     I2C_open()
+ */
+extern void I2C_close(I2C_Handle i2cHnd);
+
+/*!
+ *  @brief  Function performs implementation specific features on a given
+ *          I2C_Handle.
+ *
+ *  @pre    I2C_open() has to be called first.
+ *
+ *  @param  i2cHnd      A I2C handle returned from I2C_open()
+ *
+ *  @param  cmd         A command value defined by the driver specific
+ *                      implementation
+ *
+ *  @param  arg         An optional R/W (read/write) argument that is
+ *                      accompanied with cmd
+ *
+ *  @return Implementation specific return codes. Negative values indicate
+ *          unsuccessful operations.
+ *
+ *  @sa     I2C_open()
+ */
+extern int32_t I2C_control(I2C_Handle i2cHnd, uint32_t cmd, void *arg);
+
+/*!
+ *  @brief  Function to initializes the I2C module
+ *
+ *  @pre    The I2C_config structure must exist and be persistent before this
+ *          function can be called. This function must also be called before
+ *          any other I2C driver APIs. This function call does not modify any
+ *          peripheral registers.
+ */
+extern void I2C_init(void);
+
+/*!
+ *  @brief  Function to initialize a given I2C peripheral specified by the
+ *          particular index value. The parameter specifies which mode the I2C
+ *          will operate.
+ *
+ *  @pre    I2C controller has been initialized
+ *
+ *  @param  idx           Logical peripheral number for the I2C indexed into
+ *                        the I2C_config table
+ *
+ *  @param  params        Pointer to an parameter block, if NULL it will use
+ *                        default values. All the fields in this structure are
+ *                        RO (read-only).
+ *
+ *  @return A I2C_Handle on success or a NULL on an error or if it has been
+ *          opened already.
+ *
+ *  @sa     I2C_init()
+ *  @sa     I2C_close()
+ */
+extern I2C_Handle I2C_open(uint32_t idx, I2C_Params *params);
+
+/*!
+ *  @brief  Function to initialize the I2C_Params struct to its defaults
+ *
+ *  @param  params      An pointer to I2C_Params structure for
+ *                      initialization
+ *
+ *  Defaults values are:
+ *      transferMode = I2C_MODE_BLOCKING
+ *      transferCallbackFxn = NULL
+ *      bitRate = I2C_100kHz
+ */
+extern void I2C_Params_init(I2C_Params *params);
+
+/*!
+ *  @brief  Function that handles the I2C transfer for SYS/BIOS
+ *
+ *  This function will start a I2C transfer and can only be called from a Task
+ *  context when in I2C_MODE_BLOCKING.
+ *  The I2C transfer procedure starts with evaluating how many bytes are to be
+ *  written and how many are to be read from the I2C peripheral. Due to common
+ *  I2C data transfer processes, to be written will always sent before any data
+ *  is read.
+ *
+ *  The data written to the peripheral is preceded with the peripheral's 7-bit
+ *  I2C slave address (with the Write bit set).
+ *  After all the data has been transmitted, the driver will evaluate if any
+ *  data needs to be read from the device.
+ *  If so, a Re-START bit is sent, along with the same 7-bit I2C slave address
+ *  (with the Read bit). Else, the transfer is concluded with a STOP bit.
+ *  After the specified number of bytes have been read by the I2C, the transfer
+ *  is ended with a NACK and STOP bit.
+ *
+ *  In I2C_MODE_BLOCKING, I2C_transfer will block task execution until the
+ *  transaction has completed.
+ *
+ *  In I2C_MODE_CALLBACK, I2C_transfer does not block task execution and calls a
+ *  callback function specified by transferCallbackFxn. If a transfer is already
+ *  taking place, the transaction is put on an internal queue. The queue is
+ *  serviced in a first come first served basis.
+ *  The I2C_Transaction structure must stay persistent until the I2C_transfer
+ *  function has completed!
+ *
+ *  @param  i2cHnd      A I2C_Handle
+ *
+ *  @param  transaction A pointer to a I2C_Transaction. All of the fields within
+ *                      transaction are WO (write-only) unless otherwise noted
+ *                      in the driver implementations.
+ *
+ *  @return true on successful transfer
+ *          false on an error, such as a I2C bus fault
+ *
+ *  @sa     I2C_open
+ */
+extern int16_t I2C_transfer(I2C_Handle i2cHnd, I2C_Transaction *transaction);
+
+/**<
+ *  @brief  Function to initialize the I2C_Transaction struct to its defaults
+ *
+ *  Defaults values are:
+ *  validParams = I2C_TRANS_VALID_PARAM_MASTER_MODE;
+ *  writeBuf = NULL;
+ *  writeCount = 0;
+ *  readBuf = NULL;
+ *  readCount = 0;
+ *  slaveAddress = 0;
+ *  arg = NULL;
+ *  nextPtr = NULL;
+ *  timeout = I2C_WAIT_FOREVER;
+ *  rsWrToMstBuf = NULL;
+ *  rsWrToMstCnt = 0;
+ *  masterMode = true;
+ *
+ *  @return   transaction parameter structure to initialize
+ */
+extern void I2C_transactionInit(I2C_Transaction *transaction);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _I2C_H_ */
+
+/* @} */
diff --git a/packages/ti/drv/i2c/I2Cver.h b/packages/ti/drv/i2c/I2Cver.h
new file mode 100644 (file)
index 0000000..821c2f3
--- /dev/null
@@ -0,0 +1,68 @@
+#ifndef _I2CVER_H
+#define _I2CVER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ============================================================= */
+/**
+ *   @file  I2Cver.h
+ *
+ *   path  ti/drv/i2c/I2Cver.h
+ *
+ *   @brief  i2c Driver Version Definitions
+ *
+ *  ============================================================
+ *  Copyright (c) Texas Instruments Incorporated 2009-2017
+ * 
+ *  Redistribution and use in source and binary forms, with or without 
+ *  modification, are permitted provided that the following conditions 
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright 
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the 
+ *    documentation and/or other materials provided with the   
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+/**
+ * @brief   This is the i2c Driver Version. Versions numbers are encoded in the following 
+ * format:
+ *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
+ */
+#define I2C_DRV_VERSION_ID                     (0x01000010)
+
+/**
+ * @brief   This is the version string which describes the I2C driver along with the
+ * date and build information.
+ */
+#define I2C_DRV_VERSION_STR                    "i2c Driver Revision: 01.00.00.16"
+
+
+#ifdef __cplusplus
+}
+#endif
+  
+
+#endif  /* _I2CVER_H */
diff --git a/packages/ti/drv/i2c/I2Cver.h.xdt b/packages/ti/drv/i2c/I2Cver.h.xdt
new file mode 100755 (executable)
index 0000000..b252e61
--- /dev/null
@@ -0,0 +1,100 @@
+%%{\r
+/*!\r
+ *  This template implements the i2cver.h\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  var ver1 = [00,00,00,00];\r
+  var ver2 = [00,00,00,00];\r
+  \r
+  for each(i=0;i<ver.length;i++)\r
+  {\r
+      if(String(ver[i]).length < 2)\r
+      {\r
+        ver1[i]="0"+ver[i];\r
+      }\r
+      else\r
+      {\r
+        ver1[i] = ver[i];\r
+      }\r
+      \r
+      ver2[i] = Number(ver[i]).toString(16).toUpperCase();\r
+      \r
+      if(String(ver2[i]).length < 2)\r
+      {\r
+        ver2[i]="0"+ver2[i];\r
+      }\r
+  }\r
+  \r
+  var versionStr = "\""+"i2c Driver Revision: "+ver1[0]+"."+ver1[1]+"."+ver1[2]+"."+ver1[3]+"\"";\r
+  var versionID = "(0x"+ver2[0]+ver2[1]+ver2[2]+ver2[3]+")";\r
+\r
+%%}\r
+#ifndef _I2CVER_H\r
+#define _I2CVER_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* ============================================================= */\r
+/**\r
+ *   @file  I2Cver.h\r
+ *\r
+ *   path  ti/drv/i2c/I2Cver.h\r
+ *\r
+ *   @brief  i2c Driver Version Definitions\r
+ *\r
+ *  ============================================================\r
+ *  Copyright (c) Texas Instruments Incorporated 2009-2017\r
+ * \r
+ *  Redistribution and use in source and binary forms, with or without \r
+ *  modification, are permitted provided that the following conditions \r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright \r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the \r
+ *    documentation and/or other materials provided with the   \r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+\r
+/**\r
+ * @brief   This is the i2c Driver Version. Versions numbers are encoded in the following \r
+ * format:\r
+ *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)\r
+ */\r
+#define I2C_DRV_VERSION_ID                     `versionID`\r
+\r
+/**\r
+ * @brief   This is the version string which describes the I2C driver along with the\r
+ * date and build information.\r
+ */\r
+#define I2C_DRV_VERSION_STR                    `versionStr`\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+  \r
+\r
+#endif  /* _I2CVER_H */\r
diff --git a/packages/ti/drv/i2c/Settings.xdc.xdt b/packages/ti/drv/i2c/Settings.xdc.xdt
new file mode 100644 (file)
index 0000000..e2ef7f6
--- /dev/null
@@ -0,0 +1,74 @@
+\r
+%%{\r
+/*!\r
+ *  This template implements the Settings.xdc\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  for each(i=0;i<ver.length;i++)\r
+  {\r
+      if(String(ver[i]).length < 2)\r
+      {\r
+        ver[i]="0"+ver[i];\r
+      }\r
+  }\r
+  \r
+  var packageVersion = "\""+ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3]+"\"";\r
+\r
+%%}\r
+\r
+module Settings\r
+{\r
+    config string i2cVersionString = `packageVersion`;\r
+    /*! This variable is to control the SoC type selection.\r
+     * By default this variable is set to NULL.\r
+     * \r
+     * To use LLD for the selected device, add the following lines to config\r
+     * file and set the deviceType correctly:\r
+        *\r
+     *      var i2cSettings = xdc.useModule ('ti.drv.i2c.Settings');\r
+     *      i2cSettings.socType = "am572x";\r
+     * \r
+     */\r
+    metaonly config string socType = "";\r
+\r
+    /*! This flag is used to indicate whether or not the benchmarking code\r
+     * (defined in the profilingHooks class) will be used in the project.\r
+     * Note that a separate library has been compiled and will be used\r
+     * ($NAME).profiling.a($SUFFIX). This is set in the *.cfg file.\r
+     */\r
+    config Bool enableProfiling = false;\r
+       \r
+    /*! This variable is to control the device library type selection.\r
+     * By default this variable is set to release.\r
+     * \r
+     * To use CSL to use the debug/release library, add the following lines to config\r
+     * file and set the library profile accordingly:\r
+     * \r
+     *      var i2cSettings = xdc.useModule ('ti.drv.i2c.Settings');\r
+     *      i2cSettings.libProfile = "debug";\r
+     * \r
+     */\r
+    metaonly config string libProfile = "release";     \r
+    \r
+    /*! This variable controls whether or not I2C SW IP (PRU firmware) will be \r
+     * used in the project.\r
+     *\r
+     * By default this variable is set to false.\r
+     * \r
+     * To use I2C SW IP for the selected device, add the following lines to config\r
+     * file and set the enableSwIp correctly:\r
+        *\r
+     *      var i2cSettings = xdc.useModule ('ti.drv.i2c.Settings');\r
+     *      i2cSettings.enableSwIp = true;\r
+     * \r
+     */\r
+    config Bool enableSwIp = false;\r
+    \r
+    /*! This flag is used to indicate whether to use the AM437x ICSS0\r
+     * I2C LLD library.\r
+     *\r
+     * By default this variable is set to false.\r
+     */\r
+    config Bool fwIcss0 = false;\r
+}\r
diff --git a/packages/ti/drv/i2c/build/buildlib.xs b/packages/ti/drv/i2c/build/buildlib.xs
new file mode 100644 (file)
index 0000000..78be8ae
--- /dev/null
@@ -0,0 +1,646 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build Library Utilities\r
+ ******************************************************************************\r
+ * FILE NAME: buildlib.xs\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains common routines that are used by the various I2C\r
+ *  components.\r
+ *\r
+ * Copyright (C) 2014-2016, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : listAllFiles\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  Utility function which lists all files with a specific extension \r
+ *  present in a directory and any directory inside it.\r
+ **************************************************************************/\r
+function listAllFiles(ext, dir, recurse)\r
+{     \r
+    var srcFile = [];\r
+    var d;\r
+\r
+    /* If recurse parameter is not specified we default to recursive search. */\r
+    if (recurse == null)\r
+        recurse = true;\r
+\r
+    if (dir == undefined) \r
+          d = ".";\r
+    else \r
+      d = dir;\r
+\r
+    /* Get access to the current directory. */\r
+    var file = new java.io.File(d);\r
+\r
+    /* Check if the file exists and it is a directory. */\r
+    if (file.exists() && file.isDirectory()) \r
+    {\r
+        /* Get a list of all files in the specific directory. */\r
+        var fileList = file.listFiles();\r
+        for (var i = 0; i < fileList.length; i++) \r
+        {\r
+            /* Dont add the generated directory 'package' and any of its files \r
+             * to the list here. */\r
+            if (fileList[i].getName().matches("package") == false)\r
+            {\r
+                /* Check if the detected file is a directory */\r
+                if (fileList[i].isDirectory())\r
+                {\r
+                    /* We will recurse into the subdirectory only if required to do so. */\r
+                    if (recurse == true)\r
+                    {\r
+                        /* Generate the directory Name in which we will recurse. */ \r
+                        var directoryName = d + "/" + fileList[i].getName();\r
+\r
+                        /* Get a list of all files in this directory */\r
+                        var fileListing = listAllFiles (ext, directoryName, recurse);\r
+                        if (fileListing != null)\r
+                        {\r
+                            /* Return a list of all file names in the directory. */\r
+                            for (var j = 0 ; j < fileListing.length; j++) \r
+                                srcFile[srcFile.length++] = fileListing[j];\r
+                        }\r
+                    }\r
+                }\r
+                else\r
+                {\r
+                    /* This was a file. Check if the file name matches the extension */\r
+                    if (fileList[i].getName().endsWith(ext) == true)\r
+                        srcFile[srcFile.length++] = d + "/" + fileList[i].getName();\r
+                }\r
+            }\r
+        }\r
+\r
+        return srcFile;\r
+    }\r
+    return null;\r
+}\r
+\r
+\r
+function createMake(makefile)\r
+{\r
+    /* Create the main make file */\r
+    var fileModule = xdc.module('xdc.services.io.File');\r
+    if(makefile==undefined)\r
+    {\r
+      try{\r
+          makefile = fileModule.open("makefile", "w");\r
+         } catch (ex)\r
+         {\r
+           print("makefile cannot be written to. Please check Writing Permissions.");\r
+           java.lang.System.exit(1);\r
+         }   \r
+    \r
+      Pkg.makePrologue += "\ninclude makefile\n"; \r
+         \r
+      Pkg.makeEpilogue += "\nclean::\n\t-$(RM)  makefile\n";\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#* FILE PURPOSE: Top level makefile for Creating Component Libraries");\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#* FILE NAME: makefile");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#* DESCRIPTION: Defines Compiler tools paths, libraries , Build Options ");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("#*******************************************************************************");\r
+      makefile.writeLine("#*");\r
+      makefile.writeLine("# (Mandatory) Specify where various tools are installed.");\r
+\r
+      var file = xdc.module('xdc.services.io.File');\r
+    \r
+      \r
+      makefile.writeLine("\n# Output for prebuilt generated libraries");\r
+      makefile.writeLine("export LIBDIR ?= ./lib");\r
+      /* use sectti.exe from path */\r
+      makefile.writeLine("export SECTTI ?= sectti");\r
+\r
+      /* Create INCDIR from XDCPATH */\r
+    \r
+      /* copy the environment array from the current environment */\r
+      var env   = java.lang.System.getenv();\r
+      var getxdcpath=String(java.lang.System.getenv("XDCPATH"));\r
+      getxdcpath= getxdcpath.replace(/\\/g,"/");\r
+      var keys  = env.keySet().toArray();\r
+      var key;\r
+      var stat={};\r
+      var env_j=[];\r
+      var listxdcpath = new Array();\r
+      for (var i = 0; i < keys.length; i++) {\r
+           key = String(keys[i]);\r
+           if((key.match("INSTALL_PATH")) || (key.match("INSTALLDIR")))\r
+           {\r
+             var keyPath=String(env.get(key));\r
+             keyPath=keyPath.replace(/\\/g,"/");\r
+             var file = xdc.module('xdc.services.io.File');\r
+             keyPath=file.getDOSPath(keyPath);\r
+             if(getxdcpath.toString().match(keyPath))\r
+             {\r
+                 listxdcpath.push({keyname: key,keypath: keyPath});\r
+                 while(getxdcpath.toString().match(keyPath))\r
+                 {\r
+                   getxdcpath=getxdcpath.toString().replace(keyPath,"$("+key+")");\r
+                 }\r
+             }\r
+           }\r
+    \r
+     }\r
+       var pkgroot="..";\r
+       for (var i = Pkg.name.split('.').length; i > 1; i--) {\r
+              pkgroot+="/..";\r
+          }\r
+        \r
+      makefile.writeLine("\n# ROOT Directory");        \r
+      makefile.writeLine("export ROOTDIR := "+pkgroot);\r
+    \r
+      makefile.writeLine("\n# INCLUDE Directory");\r
+      makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR)");       \r
+    \r
+      makefile.writeLine("\n# Common Macros used in make");  \r
+      makefile.writeLine("\nifndef RM");     \r
+      makefile.writeLine("export RM = rm -f");\r
+      makefile.writeLine("endif");        \r
+    \r
+      makefile.writeLine("\nifndef CP");     \r
+      makefile.writeLine("export CP = cp -p");    \r
+      makefile.writeLine("endif");    \r
+        \r
+      makefile.writeLine("\nexport MKDIR = mkdir -p");\r
+    \r
+      makefile.writeLine("\nifndef RMDIR");         \r
+      makefile.writeLine("export RMDIR = rm -rf");\r
+      makefile.writeLine("endif");        \r
+    \r
+      makefile.writeLine("\nifndef SED"); \r
+      makefile.writeLine("export SED = sed");    \r
+      makefile.writeLine("endif");    \r
+    \r
+      makefile.writeLine("\nifndef MAKE"); \r
+      makefile.writeLine("export MAKE = make");    \r
+      makefile.writeLine("endif");        \r
+\r
+      makefile.writeLine("\n# PHONY Targets");                \r
+      makefile.writeLine(".PHONY: all clean cleanall ");    \r
+      \r
+      makefile.writeLine("\n# FORCE Targets");                \r
+      makefile.writeLine("FORCE: ");          \r
+      \r
+      makefile.writeLine("\n# all rule");                \r
+      makefile.writeLine("all: .executables");           \r
+      makefile.writeLine(".executables: .libraries");\r
+      makefile.writeLine(".libraries:");\r
+      \r
+      makefile.writeLine("\n# Clean Rule");          \r
+      makefile.writeLine("clean:: clean_package");                  \r
+      makefile.writeLine("# Clean Top Level Object Directory ");          \r
+      makefile.writeLine("clean_package :\n\t$(RMDIR) $(LIBDIR)/*/");      \r
+      makefile.writeLine("\t$(RMDIR) package/cfg");            \r
+   }\r
+   else\r
+   {\r
+     try{\r
+          makefile = fileModule.open("makefile", "a");\r
+         } catch (ex)\r
+         {\r
+           print("makefile cannot be written to. Please check Writing Permissions.");\r
+           java.lang.System.exit(1);\r
+         }  \r
+    \r
+    }\r
+\r
+ return makefile;\r
+}\r
+\r
+function createLibMake(device, objExtDir, makelibname,targetname, objectPath, useProfiling)\r
+{\r
+   var tooldir;\r
+   var cmdprefix;\r
+   var targetDir;\r
+   var stringname=String(targetname).replace("(xdc.bld.ITarget.Module)","");\r
+\r
+   var benchSuffix = "";\r
+\r
+   if (useProfiling == true) {\r
+     benchSuffix = "_bench";\r
+   }\r
+\r
+   switch(stringname)\r
+   {\r
+    case String(C66LE):\r
+      tooldir="C6X_GEN_INSTALL_PATH";\r
+      cmdprefix="";\r
+      targetDir="c66/release";\r
+      targetname=C66LE;\r
+      break;\r
+    case String(C66BE):\r
+      tooldir="C6X_GEN_INSTALL_PATH";\r
+      cmdprefix="";\r
+      targetDir="c66";\r
+      targetname=C66BE;\r
+      break;\r
+    case String(C674LE):\r
+      tooldir="C6X_GEN_INSTALL_PATH";\r
+      cmdprefix="";\r
+      targetDir="c674/release";\r
+      targetname=C674LE;\r
+      break;\r
+    case String(A15LE):\r
+      tooldir="TOOLCHAIN_PATH_A15"; \r
+      cmdprefix="CROSS_TOOL_PRFX";\r
+      targetDir="a15/release";\r
+      targetname=A15LE;\r
+      break;\r
+    case String(A9LE):\r
+      tooldir="TOOLCHAIN_PATH_A9";\r
+      cmdprefix="CROSS_TOOL_PRFX";\r
+      targetDir="a9/release";\r
+      targetname=A9LE;\r
+      break;\r
+       case String(ARM9LE):\r
+      tooldir="TOOLCHAIN_PATH_ARM9";\r
+      cmdprefix="CROSS_TOOL_PRFX";\r
+      targetDir="arm9/release";\r
+      targetname=ARM9LE;\r
+      break;\r
+    case String(A8LE):\r
+      tooldir="TOOLCHAIN_PATH_A8";\r
+      cmdprefix="CROSS_TOOL_PRFX";\r
+      targetDir="a8/release";\r
+      targetname=A8LE;\r
+      break;\r
+    case String(M4LE):\r
+      tooldir="TOOLCHAIN_PATH_M4";\r
+      cmdprefix="";\r
+      targetDir="m4/release";\r
+      targetname=M4LE;\r
+      break;\r
+   }\r
+   \r
+    var fileModule = xdc.module('xdc.services.io.File');\r
+    try{\r
+     var dstFile = new java.io.File(makelibname);\r
+     dstFile.getParentFile().mkdirs();    \r
+     libmakefile = fileModule.open(makelibname, "w");\r
+     /* Add to Archive list */\r
+    } catch (ex)\r
+    {\r
+     print(makelibname+" cannot be written to. Please check Writing Permissions.");\r
+     java.lang.System.exit(1);\r
+    }   \r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#* FILE PURPOSE: Lower level makefile for Creating Component Libraries");\r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#* FILE NAME: "+makelibname);\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#* DESCRIPTION: Defines Source Files, Compilers flags and build rules");\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#*");\r
+    libmakefile.writeLine("#*******************************************************************************");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("# Macro definitions referenced below");\r
+    libmakefile.writeLine("#");\r
+    libmakefile.writeLine("empty =");\r
+    libmakefile.writeLine("space =$(empty) $(empty)");\r
+    \r
+    if ((targetname.name == "A15F") || (targetname.name == "A9F") || (targetname.name == "A8F"))\r
+    {\r
+    \r
+        if(stringname.match("gnu.targets"))\r
+        {\r
+            libmakefile.writeLine("CC = $("+tooldir+")/bin/$("+cmdprefix+")gcc");\r
+            libmakefile.writeLine("AC = $("+tooldir+")/bin/$("+cmdprefix+")as");    \r
+            libmakefile.writeLine("ARIN = $("+tooldir+")/bin/$("+cmdprefix+")ar");    \r
+            libmakefile.writeLine("LD = $("+tooldir+")/bin/$("+cmdprefix+")gcc");   \r
+        }\r
+        else\r
+        {\r
+            print("Error: Non-GNU targets are not currently supported ");\r
+            java.lang.System.exit(1);\r
+\r
+        }\r
+       \r
+        libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR)))) -I$("+tooldir+")/include");\r
+        libmakefile.writeLine("OBJEXT = o"+targetname.suffix); \r
+        libmakefile.writeLine("AOBJEXT = s"+targetname.suffix);     \r
+        if (useProfiling == true){\r
+            libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts+" -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM");\r
+        }else{\r
+            libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts);\r
+        }\r
+        libmakefile.writeLine("ASFLAGS_INTERNAL = " +targetname.asmOpts.prefix+" "+targetname.asm.opts);\r
+        libmakefile.writeLine("ARFLAGS_INTERNAL = " +targetname.ar.opts);\r
+        libmakefile.writeLine("LNKFLAGS_INTERNAL = " +targetname.lnk.opts);\r
+        libmakefile.writeLine("INTERNALDEFS = -MD -MF $@.dep");\r
+        libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map");  /* TBD */\r
+        libmakefile.writeLine("OBJDIR = ./obj/obj_" +targetname.suffix +"/" + device.toString() + "/" + targetDir +"/obj" + "/" + objExtDir + benchSuffix); \r
+    \r
+    }\r
+    else\r
+    {\r
+  \r
+        if(stringname.match("ti.targets"))\r
+        {\r
+\r
+            var rtslibtemp = targetname.lnkOpts.suffix.toString().split("/");\r
+            var rtslib;\r
+            for(n=0;n<rtslibtemp.length;n++)\r
+            {\r
+                if(rtslibtemp[n].match(".lib"))\r
+                { \r
+                    rtslib=rtslibtemp[n];\r
+                }\r
+            }\r
+\r
+            libmakefile.writeLine("CC = $("+tooldir+")/bin/"+targetname.cc.cmd);\r
+            libmakefile.writeLine("AC = $("+tooldir+")/bin/"+targetname.asm.cmd);    \r
+            libmakefile.writeLine("ARIN = $("+tooldir+")/bin/"+targetname.ar.cmd);    \r
+            libmakefile.writeLine("LD = $("+tooldir+")/bin/"+targetname.lnk.cmd);   \r
+            libmakefile.writeLine("RTSLIB = -l $("+tooldir+")/lib/"+rtslib);        \r
+        }\r
+        else\r
+        {\r
+            print("Error: Non-TI targets are not currently supported ");\r
+            java.lang.System.exit(1);\r
+\r
+        }\r
+       \r
+        libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR)))) -I$("+tooldir+")/include");\r
+        libmakefile.writeLine("OBJEXT = o"+targetname.suffix); \r
+        libmakefile.writeLine("AOBJEXT = s"+targetname.suffix);     \r
+        if (useProfiling == true){\r
+            libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts+" --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM");\r
+        }else{\r
+            libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts);\r
+        }\r
+        libmakefile.writeLine("ASFLAGS_INTERNAL = " +targetname.asmOpts.prefix+" "+targetname.asm.opts);\r
+        libmakefile.writeLine("ARFLAGS_INTERNAL = " +targetname.ar.opts);\r
+        libmakefile.writeLine("LNKFLAGS_INTERNAL = " +targetname.lnk.opts);\r
+        /* libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -Dxdc_target_types__=ti/targets/std.h -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");*/\r
+        libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+"  -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");\r
+        libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map");\r
+        libmakefile.writeLine("OBJDIR =  ./obj/obj_" +targetname.suffix +"/" + device.toString() + "/" + targetDir +"/obj" + "/" + objExtDir + benchSuffix); \r
+    }\r
+   \r
+ return libmakefile;\r
+\r
+}\r
+\r
+function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, targetName, objDir)\r
+{\r
+  var  sourcestring = (srcString + fileExt).toString().toUpperCase();\r
+  var  compileflagstring = sourcestring + "FLAGS";\r
+  var  objectliststring = sourcestring + "OBJS";\r
+  /* List all the source files */\r
+  makefilename.writeLine("\n#List the "+srcString+" Files");  \r
+  makefilename.writeLine(sourcestring + "= \\");\r
+  for(var i=0;i<srcfiles.length-1;i++)\r
+  {\r
+    makefilename.writeLine("    "+srcfiles[i]+"\\");\r
+  }\r
+    makefilename.writeLine("    "+srcfiles[i]+"\n");\r
+    \r
+ /* Flags for the source files */\r
+ makefilename.writeLine("# FLAGS for the "+srcString+" Files"); \r
+ var compileflags="";\r
+ if(fileExt == "asm" && flags.aopts != undefined)\r
+ {\r
+   compileflags+=" "+flags.aopts;\r
+ }\r
+ else if((fileExt == "c" || fileExt == "sa")&& flags.copts != undefined)\r
+ {\r
+   compileflags+=" "+flags.copts;\r
+ } \r
+\r
+ if(flags.incs != undefined)\r
+ {\r
+   compileflags+=" "+flags.incs;\r
+ }\r
+\r
+\r
+ makefilename.writeLine(compileflagstring+" = "+compileflags +" \n");     \r
+ makefilename.writeLine("# Make Rule for the "+srcString+" Files");  \r
\r
+ makefilename.writeLine(objectliststring +" = $(patsubst %."+fileExt+", "+objDir+"/%.$(OBJEXT), $(" + sourcestring + "))"); \r
+ makefilename.writeLine("\n$("+objectliststring+"): "+objDir+"/%.$(OBJEXT): %."+fileExt);   \r
+ if(fileExt == "c")\r
+ { \r
+   makefilename.writeLine("\t-@echo cl"+targetName.suffix +" $< ...");     \r
+ }\r
+ else\r
+ {\r
+   makefilename.writeLine("\t-@echo asm"+targetName.suffix +" $< ...");      \r
+ }\r
+ makefilename.writeLine("\tif [ ! -d $(@D) ]; then $(MKDIR) $(@D) ; fi;");           \r
\r
+ if(fileExt == "c")\r
+ {\r
+   if ((targetName.name == "A15F") || (targetName.name == "A9F") || (targetName.name == "A8F"))\r
+   {\r
+    makefilename.writeLine("\t$(RM) $@.dep");\r
+    makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< -o $@");\r
+   /* \r
+    TBD\r
+   */\r
+   }\r
+   else\r
+   {\r
+    makefilename.writeLine("\t$(RM) $@.dep");\r
+    makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fc $< ");\r
+    makefilename.writeLine("\t-@$(CP) $@.dep $@.pp; \\");\r
+    makefilename.writeLine("         $(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\\\$$//' \\");\r
+    makefilename.writeLine("             -e '/^$$/ d' -e 's/$$/ :/' < $@.pp >> $@.dep; \\");\r
+    makefilename.writeLine("         $(RM) $@.pp ");\r
+   }\r
+ }\r
+ else if(fileExt == "asm")\r
+ {\r
+   makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fa $< ");\r
+ }\r
+ else if(fileExt == "sa")\r
+ {\r
+   makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< ");\r
+ }\r
\r
+ makefilename.writeLine("\n#Create Empty rule for dependency");\r
+ makefilename.writeLine("$("+objectliststring+"):"+makefilename.$private.fd);\r
+ makefilename.writeLine(makefilename.$private.fd+":");\r
+ makefilename.writeLine("\n#Include Depedency for "+srcString+" Files");\r
+ makefilename.writeLine("ifneq (clean,$(MAKECMDGOALS))");\r
+ makefilename.writeLine(" -include $("+objectliststring+":%.$(OBJEXT)=%.$(OBJEXT).dep)");\r
+ makefilename.writeLine("endif");\r
\r
+}\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : buildLibrary\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  Utility function which will build a specific library\r
+ **************************************************************************/\r
+var makefilelocal;\r
+function buildLibrary (socName, isDmaSoc, isSoc, libOptions, libName, target, libFiles, useProfiling) \r
+{\r
+    var targetDir;\r
+    var objExtDir;\r
+    \r
+    if (useProfiling == true)\r
+    {\r
+        libName += ".profiling"\r
+    }\r
+\r
+    if (target.name == "A15F")\r
+    {\r
+        targetDir = "a15/release";\r
+    }\r
+       else if (target.name == "A9F")\r
+    {\r
+        targetDir = "a9/release";\r
+    }\r
+    else if (target.name == "ARM9")\r
+    {\r
+        targetDir = "arm9/release";\r
+    }\r
+       else if (target.name == "A8F")\r
+    {\r
+        targetDir = "a8/release";\r
+    }\r
+    else if (target.name == "C674")\r
+    {\r
+        targetDir = "c674/release";\r
+    }\r
+    else if (target.name == "M4")\r
+    {\r
+        targetDir = "m4/release";\r
+    }\r
+    else\r
+    {\r
+        targetDir = "c66/release";\r
+    }\r
+    \r
+    /* Derive the operating system and soc names */\r
+    if (isSoc == "true") {\r
+        var libNameExp = libName;\r
+        targetDir = socName+"/"+targetDir;\r
+        objExtDir = "soc";\r
+    }\r
+    else  {\r
+        var libNameExp = libName;\r
+        objExtDir = "all";\r
+    }\r
+\r
+    var lldFullLibraryPath = "./lib/" + targetDir +"/" + libNameExp;\r
+    var lldFullBuildPath = "./build/" + targetDir +"/" + libNameExp;\r
+    var lldFullLibraryPathMake = "$(LIBDIR)/" + targetDir +"/" + libNameExp;\r
+\r
+    /* Create Main make file in the root of package folder */\r
+    makefilelocal = createMake(makefilelocal);\r
+\r
+    /* Write the rule to make library in main makefile */\r
+    lib = lldFullBuildPath+".a"+target.suffix;\r
+    libMake = lldFullLibraryPathMake+".a"+target.suffix;\r
+    var objectPath= "./package/"+lldFullBuildPath;\r
+  \r
+    makefilelocal.writeLine("\n\n# Make rule to create "+libMake+" library");\r
+    makefilelocal.writeLine(".libraries: "+ libMake);\r
+    makefilelocal.writeLine(libMake+": FORCE\n\t$(MAKE) -f "+lib+".mk $@");                                 \r
+\r
+    /* Create Library make file in the lib folder */\r
+    var makefilelib= createLibMake(socName, objExtDir, lib+".mk",target,objectPath,useProfiling);  \r
+\r
+    /* Rule to clean library in main makefile */\r
+    makefilelocal.writeLine("# Rule to clean "+libMake+" library");                                              \r
+    makefilelocal.writeLine("clean ::\n\t$(RM) "+ libMake);                                          \r
+    librule="\n\n"+libMake+" :";\r
+\r
+    /* Add files to be compiled */\r
+    /* Separate out the C and assembly files */\r
+    var cfiles= new Array();\r
+    var afiles= new Array();\r
+    var safiles= new Array();\r
+    for each(var srcFile in libFiles)\r
+    {\r
+        var srcFile=String(srcFile);\r
+        var dot = srcFile.lastIndexOf(".");\r
+        var extension = srcFile.substr(dot,srcFile.length);      \r
+        if(extension == ".c")\r
+        {\r
+            cfiles.push(srcFile);\r
+        }\r
+        else if(extension == ".sa")\r
+        {\r
+            safiles.push(srcFile);\r
+        }\r
+        else if(extension == ".asm")\r
+        {\r
+            afiles.push(srcFile);\r
+        }\r
+        else\r
+        {\r
+            print("ERROR: Unsupported file extension");\r
+            java.lang.System.exit(1);\r
+        }\r
+    }\r
+    if(cfiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,cfiles,libOptions,"c",target, "$(OBJDIR)");\r
+      librule += " $(COMMONSRCCOBJS)";                   \r
+    }\r
+    if(afiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,afiles,libOptions,"asm",target, "$(OBJDIR)");\r
+      librule += " $(COMMONSRCASMOBJS)";                   \r
+    }\r
+    if(safiles.length > 0)\r
+    {                                                \r
+      makeAddObjects("COMMONSRC",makefilelib,safiles,libOptions,"sa",target, "$(OBJDIR)");\r
+      librule += " $(COMMONSRCSAOBJS)";                   \r
+    }\r
+\r
+    makefilelib.writeLine(librule);\r
+    makefilelib.writeLine("\t@echo archiving $? into $@ ...");\r
+    makefilelib.writeLine("\tif [ ! -d $(LIBDIR)/"+targetDir+" ]; then $(MKDIR) $(LIBDIR)/"+targetDir+" ; fi;"); \r
+       makefilelib.writeLine("\t$(ARIN) $(ARFLAGS_INTERNAL) $@ $?");\r
+       makefilelib.close();   \r
+\r
+    /* Create the Epilogue; which executes after all the builds are completed. \r
+     * This is used to generate the benchmark information for the built library. \r
+     * Also add the benchmarking information file to the package. */\r
+    /* Put the temp file in object directory since javascript doesn't have a built in tmpname, \r
+     * and don't want --jobs=# with # > 1 to result in collisions */\r
+    var libFullName = lldFullLibraryPath + ".a" + target.suffix;\r
+    var tempFile = libFullName + ".xml";\r
+    Pkg.makeEpilogue += ".libraries: " + libFullName +  "_size.txt\n";\r
+    Pkg.makeEpilogue += libFullName +  "_size.txt: " + libFullName + "\n";\r
+    if ( java.lang.String(target.name).contains('66') )\r
+    {    \r
+        Pkg.makeEpilogue += "\n\t $(C6X_GEN_INSTALL_PATH)/bin/ofd6x -x " + libFullName + " > " + tempFile;\r
+        Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName +  "_size.txt";\r
+        Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";\r
+    }   \r
+    else if (target.name == "M4")\r
+    {\r
+        Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_M4)/bin/armofd -x " + libFullName + " > " + tempFile;\r
+        Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName +  "_size.txt";\r
+        Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";\r
+    }\r
+    else\r
+    {\r
+        Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)size " + libFullName + " > " + libFullName + "_size.txt";\r
+    }                \r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + "_size.txt";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullBuildPath + ".a" + target.suffix + ".mk";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix;\r
+\r
+    /* We need to clean after ourselves; extend the 'clean' target to take care of this. */\r
+    Pkg.makeEpilogue += "\nclean::\n";\r
+    Pkg.makeEpilogue += "\t$(RM) " + lldFullBuildPath + ".a" + target.suffix + "_size.txt\n"; \r
+    Pkg.makeEpilogue += "\t$(RMDIR) " + "$(LIBDIR)/" + targetDir + "/ \n\n";\r
+\r
+    return lib;\r
+}\r
+\r
+\r
+\r
diff --git a/packages/ti/drv/i2c/build/makefile.mk b/packages/ti/drv/i2c/build/makefile.mk
new file mode 100755 (executable)
index 0000000..6ed7691
--- /dev/null
@@ -0,0 +1,83 @@
+#
+# Copyright (c) 2016 - 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# *  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# *  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# *  Neither the name of Texas Instruments Incorporated nor the names of
+#    its contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = i2c
+ifeq ($(ICSS0_FW), yes)
+    MODULE_NAME = i2c_icss0
+endif
+
+include $(PDK_I2C_COMP_PATH)/src/src_files_common.mk
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra72x dra75x tda2ex am571x am572x am574x tda3xx dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+SRCDIR += soc/$(SOC)
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += I2C_soc.c
+endif
+
+# List all the external components/interfaces, whose interface header files
+#  need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra72x dra75x tda2ex am571x am572x am574x tda3xx dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 j721e))
+PACKAGE_SRCS_COMMON += soc/$(SOC) soc/I2C_soc.h
+endif
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# For all FW supporting devices source files in library and package
+ifeq ($(SOC),$(filter $(SOC), am574x am572x am335x am437x))
+  SRCDIR += src/v2
+  INCDIR += src/v2
+  SRCS_COMMON += I2C_v2.c
+  PACKAGE_SRCS_COMMON += src/v2 soc/I2C_v2.h
+  CFLAGS_LOCAL_COMMON += -DPRU_ICSS_FW
+endif
+
+ifeq ($(SOC),$(filter $(SOC), am437x))
+  ifeq ($(ICSS0_FW), yes)
+    # For ICSS0
+    CFLAGS_LOCAL_COMMON += -DAM437X_ICSS0
+  endif
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+  MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+  export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/i2c/build/makefile_icss_i2c.mk b/packages/ti/drv/i2c/build/makefile_icss_i2c.mk
new file mode 100644 (file)
index 0000000..170a942
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright (c) 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# *  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# *  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# *  Neither the name of Texas Instruments Incorporated nor the names of
+#    its contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = icss_i2c
+ifeq ($(ICSS0_FW), yes)
+    MODULE_NAME = icss_i2c_icss0
+endif
+
+SRCDIR += src/ $(PDK_CSL_COMP_PATH)/  $(PDK_INSTALL_PATH)/
+INCDIR += src/ $(PDK_CSL_COMP_PATH)/  $(PDK_INSTALL_PATH)/
+# Common source files across all platforms and cores
+SRCS_ASM_COMMON += I2C_scheduler.asm I2C_protocol.asm I2C_smbus.asm
+
+LNKFLAGS_LOCAL_COMMON = --entry_point=I2C_scheduler
+ifeq ($(ICSS0_FW), yes)
+    # add define for AM437x ICSS0
+    LNKFLAGS_LOCAL_COMMON += --define AM437X_ICSS0
+endif
+
+LNKCMD_FILE = $($(MODULE_NAME)_PATH)/src/pru.cmd
+
+PACKAGE_SRCS_COMMON += src/ build/makefile_icss_i2c.mk
+
+# List all the external components/interfaces, whose interface header files
+#  need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES =
+                      
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -DPRU
+ifeq ($(ICSS0_FW), yes)
+    # add define for AM437x ICSS0
+    CFLAGS_LOCAL_COMMON += -DAM437X_ICSS0
+    # add lister output
+    CFLAGS_LOCAL_COMMON += -al
+endif
+
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+  MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+  export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
+
diff --git a/packages/ti/drv/i2c/build/makefile_indp.mk b/packages/ti/drv/i2c/build/makefile_indp.mk
new file mode 100644 (file)
index 0000000..b9d93ff
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2016, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# *  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# *  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# *  Neither the name of Texas Instruments Incorporated nor the names of
+#    its contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = i2c_indp
+
+include $(PDK_I2C_COMP_PATH)/src/src_files_common.mk
+
+# List all the external components/interfaces, whose interface header files
+#  need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+  MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+  export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/i2c/build/makefile_profile.mk b/packages/ti/drv/i2c/build/makefile_profile.mk
new file mode 100644 (file)
index 0000000..0a7ddae
--- /dev/null
@@ -0,0 +1,79 @@
+#
+# Copyright (c) 2016 - 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# *  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# *  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# *  Neither the name of Texas Instruments Incorporated nor the names of
+#    its contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = i2c_profile
+
+include $(PDK_I2C_COMP_PATH)/src/src_files_common.mk
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra72x dra75x tda2ex am571x am572x am574x tda3xx k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+SRCDIR += soc/$(SOC)
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += I2C_soc.c
+endif
+
+# List all the external components/interfaces, whose interface header files
+#  need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra72x dra75x tda2ex am571x am572x am574x tda3xx k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+PACKAGE_SRCS_COMMON += soc/$(SOC) soc/I2C_soc.h
+endif
+
+ifeq ($(BUILDTYPE),$(filter $(BUILDTYPE), profile profiledma))
+  ifeq ($(CORE),$(filter $(CORE), mpu1_0 a15_0 a9host a8host))
+    CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM
+  else
+    CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM
+  endif
+endif
+
+# For all FW supporting devices source files in library and package
+ifeq ($(SOC),$(filter $(SOC), am574x am572x am335x am437x))
+  SRCDIR += src/v2
+  INCDIR += src/v2
+  SRCS_COMMON += I2C_v2.c
+  PACKAGE_SRCS_COMMON += src/v2 soc/I2C_v2.h
+  CFLAGS_LOCAL_COMMON += -DPRU_ICSS_FW
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+  MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+  export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/i2c/build/makefile_profile_indp.mk b/packages/ti/drv/i2c/build/makefile_profile_indp.mk
new file mode 100644 (file)
index 0000000..fd42736
--- /dev/null
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2016 - 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# *  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# *  Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# *  Neither the name of Texas Instruments Incorporated nor the names of
+#    its contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = i2c_profile_indp
+
+include $(PDK_I2C_COMP_PATH)/src/src_files_common.mk
+
+# List all the external components/interfaces, whose interface header files
+#  need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+
+ifeq ($(BUILDTYPE),$(filter $(BUILDTYPE), profile profiledma))
+  ifeq ($(CORE),$(filter $(CORE), mpu1_0 a15_0 a9host a8host))
+    CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM
+  else
+    CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM
+  endif
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+  MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+  export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/i2c/config.bld b/packages/ti/drv/i2c/config.bld
new file mode 100755 (executable)
index 0000000..b92eeb5
--- /dev/null
@@ -0,0 +1,367 @@
+/******************************************************************************
+ * FILE PURPOSE: Build configuration Script for the i2c Driver
+ ******************************************************************************
+ * FILE NAME: config.bld
+ *
+ * DESCRIPTION: 
+ *  This file contains the build configuration script for the i2c driver
+ *  and is responsible for configuration of the paths for the various 
+ *  tools required to build the driver.
+ *
+ * Copyright (C) 2014-2016, Texas Instruments, Inc.
+ *****************************************************************************/
+
+/* Get the Tools Base directory from the Environment Variable. */
+var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var c674ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");
+var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");
+var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");
+var arm9ToolsBaseDir  = java.lang.System.getenv("TOOLCHAIN_PATH_ARM9");
+var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");
+
+/* Get the extended debug flags for C66x, 
+ * did not change the name for backwards compatibilty */
+var extDbgFlags = java.lang.System.getenv("EXTDBGFLAGS");
+
+/* Get the extended debug flags for A15 */
+var extDbgFlags_a15 = java.lang.System.getenv("EXTDBGFLAGS_A15");
+
+/* Get the extended debug flags for A8 */
+var extDbgFlags_a8 = java.lang.System.getenv("EXTDBGFLAGS_A8");
+
+/* Get the extended debug flags for A9 */
+var extDbgFlags_a9 = java.lang.System.getenv("EXTDBGFLAGS_A9");
+
+/* Get the extended debug flags for ARM9 */
+var extDbgFlags_arm9 = java.lang.System.getenv("EXTDBGFLAGS_ARM9");
+
+/* Get the extended debug flags for M4 */
+var extDbgFlags_m4 = java.lang.System.getenv("EXTDBGFLAGS_M4");
+/* Get the base directory for the i2c Socket Driver Package */
+var driverPath = new java.io.File(".//").getPath();
+
+/* Include Path */
+var lldIncludePath = " -I" + driverPath + "/src" + " -I" + driverPath;
+
+/* Configure the i2c Socket Release Version Information */
+/* 3 steps: remove SPACE and TAB, convert to string and split to make array */
+var driverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
+
+/* Print the Compiler Options */
+var pOpts = 1;
+
+/* C66 ELF compiler configuration for Little Endian Mode. */
+var C66LE           = xdc.useModule('ti.targets.elf.C66');
+C66LE.rootDir       = c66ToolsBaseDir;
+C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)     
+    C66LE.ccOpts.prefix = C66LE.ccOpts.prefix + " " + extDbgFlags; 
+
+/* C67 ELF compiler configuration for Little Endian Mode. */
+var C674LE           = xdc.useModule('ti.targets.elf.C67');
+C674LE.rootDir       = c66ToolsBaseDir;
+C674LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)     
+    C67LE.ccOpts.prefix = C67LE.ccOpts.prefix + " " + extDbgFlags; 
+
+/* C66 ELF compiler configuration for Big Endian Mode. */
+var C66BE           = xdc.useModule('ti.targets.elf.C66_big_endian');
+C66BE.rootDir       = c66ToolsBaseDir;
+C66BE.ccOpts.prefix = "-mo -o3 -q -k -eo.o -DBIGENDIAN";
+if(extDbgFlags)     
+    C66BE.ccOpts.prefix = C66BE.ccOpts.prefix + " " + extDbgFlags;
+
+/* C674 ELF compiler configuration for Little Endian Mode. */
+var C674LE          = xdc.useModule('ti.targets.elf.C674');
+C674LE.rootDir       = c674ToolsBaseDir;
+C674LE.asmOpts.prefix = "--strip_coff_underscore";
+C674LE.ccOpts.prefix  = "--strip_coff_underscore -mo -o3 -q -k -eo.o " + "-D" + cslPartNumber;
+if(extDbgFlags)     
+    C674LE.ccOpts.prefix = C674LE.ccOpts.prefix + " " + extDbgFlags
+
+/* ARMv7 A15 compiler configuration */
+var A15LE            = xdc.useModule('gnu.targets.arm.A15F');
+A15LE.rootDir        = a15ToolsBaseDir;
+A15LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a15 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a15)     
+    A15LE.ccOpts.prefix = A15LE.ccOpts.prefix + " " + extDbgFlags_a15; 
+    
+/* ARMv7 A9 compiler configuration */
+var A9LE            = xdc.useModule('gnu.targets.arm.A9F');
+A9LE.rootDir        = a9ToolsBaseDir;
+A9LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a9 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a9)     
+    A9LE.ccOpts.prefix = A9LE.ccOpts.prefix + " " + extDbgFlags_a9; 
+
+/* ARMv5 ARM9 compiler configuration */
+var ARM9LE            = xdc.useModule('ti.targets.arm.elf.Arm9');
+ARM9LE.rootDir        = arm9ToolsBaseDir;
+ARM9LE.ccOpts.prefix  = "-mno-unaligned-access -c -marm -DDRA7xx -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=Arm9 -gstrict-dwarf -Wall -D__ARMv5 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_arm9)     
+    ARM9LE.ccOpts.prefix = ARM9LE.ccOpts.prefix + " " + extDbgFlags_arm9; 
+
+/* ARMv7 A8 compiler configuration */
+var A8LE            = xdc.useModule('gnu.targets.arm.A8F');
+A8LE.rootDir        = a8ToolsBaseDir;
+A8LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a8 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a8)     
+    A8LE.ccOpts.prefix = A8LE.ccOpts.prefix + " " + extDbgFlags_a8; 
+
+/* M4 ELF compiler configuration for Little Endian Mode. */
+var M4LE            = xdc.useModule('ti.targets.arm.elf.M4');
+M4LE.rootDir        = m4ToolsBaseDir;
+M4LE.ccOpts.prefix  = "-o4 -qq -pdsw255 -DMAKEFILE_BUILD";
+if(extDbgFlags_m4)
+    M4LE.ccOpts.prefix = M4LE.ccOpts.prefix + " " + extDbgFlags_m4; 
+
+/* soc name (am?) is inserted between first an second element of this
+   list to construct device file name for each device */
+var deviceConstruct = [ "soc/", "/I2C_soc.c" ];
+
+/* Create the SoC List  */
+var socs = { 
+    /* device independent libraries */
+    all :
+    {
+        /* Build this library */
+        build: "true",
+        /* SoC lib enabled */
+        socDevLib: "false",
+        /* Library options */
+        copts: "",
+        /* target lists, kept blank now, would be updated based on argument lists */
+        targets: []
+    },
+    am335x :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains am335x */
+        build: "false",
+        /* SoC lib enabled */
+        socDevLib: "true",
+        /* Library options */
+        copts: " -DSOC_AM335x",
+        /* target list */
+        targets: [ A8LE ]
+    },
+    am437x :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains am437x */
+        build: "false",       
+        /* SoC lib enabled */
+        socDevLib: "true",
+        /* Library options */
+        copts: " -DSOC_AM437x",
+        /* target list */
+        targets: [ A9LE ]
+   },
+   am572x :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains am572x */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_AM572x",
+       /* target list */
+       targets: [ C66LE, M4LE, A15LE]
+    },
+   am574x :
+    {
+       /* this variable would be reinitialized to true, if XDCARGS contains am574x */
+       build: "false",
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_AM574x",
+       /* target list */
+       targets: [ C66LE, M4LE, A15LE]
+    },
+       dra75x :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains dra75x */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_DRA75x",
+       /* target list */
+       targets: [ C66LE, M4LE, A15LE]
+    },
+   am571x :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains am571x */
+        build: "false",     
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_AM571x",
+       /* target list */
+       targets: [ C66LE, M4LE, A15LE]
+    },
+   k2h :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains k2h */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_K2H",
+       /* target list */
+       targets: [ C66LE, C66BE, A15LE]
+    },
+   k2k :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains k2k */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_K2H",
+       /* target list */
+       targets: [ C66LE, C66BE, A15LE]
+    },
+   k2e :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains k2e */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_K2E",
+       /* target list */
+       targets: [ C66LE, C66BE, A15LE]
+    },
+   k2l :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains k2l */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_K2L",
+       /* target list */
+       targets: [ C66LE, C66BE, A15LE]
+    },
+   k2g :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains k2g */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_K2G",
+       /* target list */
+       targets: [ C66LE, C66BE, A15LE]
+    },
+   omapl137 :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains omapl137 */
+        build: "false", 
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_OMAPL137",
+       /* target list */
+       targets: [ C674LE, ARM9LE]
+    },
+   omapl138 :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains omapl138 */
+        build: "false",
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_OMAPL138",
+       /* target list */
+       targets: [ C674LE, ARM9LE]
+    },
+   c6678 :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains c6678 */
+        build: "false",     
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_C6678",
+       /* target list */
+       targets: [ C66LE, C66BE]
+    },    
+   c6657 :
+    {
+        /* this variable would be reinitialized to true, if XDCARGS contains c6657 */
+        build: "false",     
+       /* SoC lib enabled */
+       socDevLib: "true",
+       /* Library options */
+       copts: " -DSOC_C6657",
+       /* target list */
+       targets: [ C66LE, C66BE]
+    }  
+};
+
+/**************************************************************************
+ * FUNCTION NAME : merge
+ **************************************************************************
+ * DESCRIPTION   :
+ *  The function is used to merge two arrarys
+ **************************************************************************/
+function merge() {
+    var args = arguments;
+    var hash = {};
+    var arr = [];
+    for (var i = 0; i < args.length; i++) {
+       for (var j = 0; j < args[i].length; j++) {
+         if (hash[args[i][j]] !== true) {
+           arr[arr.length] = args[i][j];
+           hash[args[i][j]] = true;
+         }
+       }
+     }
+    return arr;
+}
+
+/* Grab input from XDCARGS */
+var buildArguments  = [];
+
+/* Construct the build arguments */
+for (var tmp=0; arguments[tmp] != undefined; tmp++)
+{
+
+    /* If no arguments are provided, override for building all */
+    if ( ( arguments.length == 1) && (arguments[tmp].equals("./config.bld")) )
+        buildArguments[buildArguments.length++] = "all";
+    else
+        buildArguments[buildArguments.length++] = arguments[tmp];
+}
+
+/* Build targets on this build */
+var build_targets = [];
+var soc_names = Object.keys(socs);
+
+for (var i=0; i < buildArguments.length; i++ ) {
+    /* Build it for all targets */
+    if (buildArguments[i] == "all") {
+        for (var j = 0; j < soc_names.length; j++)  {
+            build_targets = merge (build_targets.slice(0), socs[soc_names[j]].targets.slice(0));
+            /* Set build to "true" for that SoC */
+            socs[soc_names[j]].build = "true";
+        }
+    }
+    else {
+        /* Skip the first argument, which is ./config.bld to get to next SoCs */
+        if (i == 0) continue;          
+        /* Set that build to true if it is found in supported build socs */
+        for (j = 0; j < soc_names.length; j++) {
+            if (buildArguments[i] == soc_names[j]) {
+                socs[buildArguments[i]].build = "true";
+                build_targets = merge (build_targets.slice(0), socs[buildArguments[i]].targets.slice(0));
+                break;
+            }
+        }
+    }   
+}
+
+/* Update the Build target generated list */
+socs["all"].targets = build_targets; 
+Build.targets   = build_targets;
diff --git a/packages/ti/drv/i2c/config_mk.bld b/packages/ti/drv/i2c/config_mk.bld
new file mode 100644 (file)
index 0000000..fd2a83d
--- /dev/null
@@ -0,0 +1,43 @@
+/******************************************************************************
+ * FILE PURPOSE: Build configuration Script for the i2c Driver
+ ******************************************************************************
+ * FILE NAME: config_mk.bld
+ *
+ * DESCRIPTION: 
+ *  This file contains the build configuration script for the i2c driver
+ *  and is responsible for configuration of the paths for the various 
+ *  tools required to build the driver.
+ *
+ * Copyright (C) 2014-2016, Texas Instruments, Inc.
+ *****************************************************************************/
+/* Get the Tools Base directory from the Environment Variable. */
+var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var c674ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");
+var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");
+var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");
+var arm9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_ARM9");
+var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");
+
+/* Get the base directory for the i2c Socket Driver Package */
+var driverPath = new java.io.File(".//").getPath();
+
+/* Include Path */
+var lldIncludePath = " -I" + driverPath + "/src" + " -I" + driverPath;
+
+/* Configure the i2c Socket Release Version Information */
+/* 3 steps: remove SPACE and TAB, convert to string and split to make array */
+var driverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
+
+/* Do not Print the Compiler Options */
+var pOpts = 0;
+
+/* List of all devices that needs to be build via XDC
+ * As the build happens through makefile, there is nothing to build via XDC
+ * using the below for packaging infrastructure
+ */
+var socs = [];
+var devices = [];
+var build_devices = [];
+Build.targets = []
+
diff --git a/packages/ti/drv/i2c/docs/I2C_LLD_SDS.pdf b/packages/ti/drv/i2c/docs/I2C_LLD_SDS.pdf
new file mode 100755 (executable)
index 0000000..cb93ba5
Binary files /dev/null and b/packages/ti/drv/i2c/docs/I2C_LLD_SDS.pdf differ
diff --git a/packages/ti/drv/i2c/docs/I2C_LLD_SoftwareManifest.html b/packages/ti/drv/i2c/docs/I2C_LLD_SoftwareManifest.html
new file mode 100755 (executable)
index 0000000..89d1a14
--- /dev/null
@@ -0,0 +1,328 @@
+<!--\r\r
+Texas Instruments Manifest Format 2.0\r\r
+-->\r\r
+\r\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\r
+<html>\r\r
+\r\r
+<head>\r\r
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r\r
+<!-- @Start Style -->\r\r
+<!-- Default style in case someone doesnt have Internet Access -->\r\r
+<style type="text/css" id="internalStyle">\r\r
+       body, div, p {\r\r
+               font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+               font-size: 13px;\r\r
+               line-height: 1.3;\r\r
+       }\r\r
+       body {\r\r
+               margin: 20px;   \r\r
+       }\r\r
+       h1 {\r\r
+               font-size: 150%;\r\r
+       }\r\r
+       h2 {\r\r
+               font-size: 120%;\r\r
+       }\r\r
+       h3 {\r\r
+               font-size: 100%;\r\r
+       }\r\r
+       img {\r\r
+               border: 0px;\r\r
+               vertical-align: middle;\r\r
+       }\r\r
+       table, th, td, tr {\r\r
+               border: 1px solid black;        \r\r
+               font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+               font-size: 13px;\r\r
+               line-height: 1.3;\r\r
+               empty-cells: show;  \r\r
+               padding: 5px;\r\r
+       }\r\r
+       table {\r\r
+               border-collapse: collapse; \r\r
+               width: 100%;\r\r
+       }\r\r
+       tr {\r\r
+               page-break-inside: avoid;\r\r
+       }\r\r
+       #TIlogoLeft {\r\r
+               background-color: black; \r\r
+               padding: 0;\r\r
+               width: 20%;\r\r
+       }\r\r
+       #TIlogoRight {\r\r
+               background-color: red; \r\r
+               padding: 0;\r\r
+       }\r\r
+       #ProductName {\r\r
+               text-align: center;\r\r
+       }\r\r
+       #ReleaseDate {\r\r
+               text-align: center;\r\r
+       }\r\r
+       .LogoSection {\r\r
+               margin: 0;\r\r
+               padding: 0;\r\r
+       }\r\r
+       .HeaderSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+               padding: 0;\r\r
+       }\r\r
+       .LegendSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+       }\r\r
+       .ExportSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+       }\r\r
+       .DisclaimerSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .CreditSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .LicenseSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .ManifestTable {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+</style> \r\r
+<!-- Override style from TI if they have Internet Access -->\r\r
+<link type="text/css" rel="stylesheet" href="timanifeststyle.css">\r\r
+<!-- @End Style -->\r\r
+<title>Texas Instruments Manifest</title>\r\r
+</head>\r\r
+\r\r
+<body><!-- Logo display, will need to fix up the URLs, this is just for testing.. Image alternate display not wporking well yet -->\r\r
+<div class="LogoSection">\r\r
+<table>\r\r
+  <tbody>\r\r
+    <tr>\r\r
+      <td id="TIlogoLeft">\r\r
+        <a href="http://www.ti.com/">\r\r
+          <!-- img src="tilogo.gif" alt="Texas Instruments Incorporated" -->\r\r
+                 <img alt="" src="data:image/gif;base64,R0lGODlh3gA2AKIAAAAAAP///7u7u29vbz8/PwYGBujo6BgYGCH5BAAAAAAALAAAAADeADYAAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodHorDALYLIHKJVqz2q44eAUHtoDB4DBu48rgLQErcNtnX7NhMDcICIB3gix5ZmtqAAZZew8EAo+QkQIDNVZqiIM1cHGKZ4YPAmaiAWw0c1gFmZqjB3SbZ6kNe6WhsAeOlDV0qjSFAXUAp7lwuREFtVsFgMvLB7fNAM+BCs+lDLd8BNYOuxfV22PL0RiWlwO1u3kDqejAEsjR6GB86FsHoYwA6gxWnVgGEegUuIelWJk6jswAGlXQ36J1xBSoQwfulIEDr/6l+VeK/+AehrAGOHRnAWRBbbWegckXAV6wk4AeRQtDQBEaBYsYlMl2hUCsBt0iKgilT9EfAlfO7SmzdKkrkQUT/fqZSECqLCSlntH375IAA1tqGUilLIBSNVnU+NmJNBRVChlF1QwAdlRWBy5P3QymwCLBYhs73cTHYBq3X33nDQ2wcWuBgef0FRD4GK3jU3VCZZUJAIw1OGg0P+4bFiubOWoOsEP1+KvZn3wurDbZ6lfcuw3yYkFjRSeYzRe7ARAbW0K3PmGIMi0OFDG1Mmha+RnufAHn3xL9ha6uTZ/rXagZ1GKAtTsHeWb+FEQvHILuX4+mLzj2j2r4TrFesTwMbE5Cuv8JzbTSGuRV1xgfUJFC3WbA0JWFalcItpgf8YU2yT/qATaedent5cBb8zk0DzIitgfKbonRFV9Wp2xl3UXq5Ccibp05598BnRigiAIJmrZAexkJQIuBwzX4CB3SQbeYQkPVAUco63DI2HzsAdYAiAvEZdYlaVQ5wXs3+bQAjovEUoBRR9LVAFLaPXCcY/KMqVRasQB5kiJgLcYgTkJiuCWKC2ZpIY/z/LRhYefkBAGW1HTyRy2UjObLHxSAOZ948EUVGCSC3SLZbB7iZKOLc2GRRgMH/VhdHnJwFCgD8iEGx0VKvpqbO+hoaCppEg3UiTES1CTkhNaQ+Qs4LQGql07/lET4mIQ6SvTSVGZ9Bmhz/bkYzK+PFKtpje6wumRm1wrLZzSdQASoZvyswdmSuk7p616HfkjBTxZBQucFgqXCFKdn1NpiUlQJhs8kteBWG0AbATbXS2tBlaeoVkmJRova4KkGPmhMFdiSYmq8cbTRYhrlkiHaNufJ9mIgVqEXnAOJM5JE4sgjudQ8bF82x+cKBP4Iiedecyjgx2/WtMNjjhcL9h+S4xq9RYJgsbeeUbmdrPTSQbPccsyijEXOfI8xyuinVJH1wdkS/MQ2Bc5Iq08DyHYwGglvPyCilbz0fa8GLV7r9+Btb7CJ14Qnzg8HpdKoOOF5Py752JNXvrblNphzEHnmnF/a+ecTbA465qKPXnnppkuOeuqKr8465K+z7nrsfc9Ouyq23z5I7rrfwXvvbhSQAAA7" />\r\r
+        </a>\r\r
+      </td>\r\r
+      <td id="TILogoRight">\r\r
+        <!-- img src="titagline.gif" alt="Technology for Innovators(tm)"-->\r\r
+               <img alt="" src="data:image/gif;base64,R0lGODlhOgEaALMAAP8AAP////92dv+3t/+Njf/W1v/t7f8hIf/19f+jo//Hx/8/P/9cXP/j4//6+v/+/iH5BAAAAAAALAAAAAA6ARoAAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqft0NDMCBQodis1jcADBKE7nYcCpjPgU5AQBKkVYOHAeRudqtXsh60/vRHdSoBBCGBNAkLe4o4f2psgG8pjR6GM5OLmDB/DA0GBoQADAgICRIBBQUOYgwGCg2kEgudBgUHAIGcBg0MsZ0NCnMGYgsBtqEGAbCynrW3AQONgcIFBgiErK6wAAfUtLbCscWiowoAyLDczLZu0AIJCAYOoJn0G38ObAwPEvLEts/O1vUhsA8AAjGonEmA9W6hGAVpEjiQoKBAhT8HJSRkVyEQQAAJ//a5YeMPQIFyACqCnJjSIgFCB4oB+HOSokWOAB6wIWCxnk8MfYh5QsYg5sVHfQLVMSqhztJIxWIaC6QzJy8KfZgqrNT0zR+nUNl8fSMvZ6IDwJCJRfoI7IR4Cub9nDsha6RwR02xUZpGq1utUWUq9FKgYV6/abgOHjt45tquEgY0SDDHoJg+fxhXolKNrmfH/EoR5EdAKmjQfB1qvPmGIQIJ3g4gC2egVF7LqxtP8Ng2cViTKFUCIGbNFKEEmB/VbDlYdqLRn+du8oTg6jjbmfe+CbTM2+BcuySgbQVtQoOCt7s3U8wbsqGs3ZppZLnylwFe8Uql825ogANPckUnYDoOCogxQGXADajggjcw4AA8DSSyTQASMmjhhTQscBWGHHbo4YcghijiiCSWaOKJKKao4oostugiFBEAADs=" />\r\r
+      </td>\r\r
+    </tr>\r\r
+  </tbody>\r\r
+</table>\r\r
+</div><div class="HeaderSection">\r\r
+<h1 id="ProductName">\r\r
+<!-- @Start Product -->\r\r
+I2C LLD Manifest\r\r
+<!-- @End Product -->\r\r
+</h1>\r\r
+\r\r
+<h2 id="ReleaseDate">\r\r
+<!-- @Start Date -->\r\r
+02-25-2016\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+\r\r
+\r\r
+<h2 id="SRASID">\r\r
+<!-- @Start Date -->\r\r
+Manifest ID - SRAS00002585\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+</div><div class="LegendSection">\r\r
+<h2>Legend</h2>\r\r
+<p>(explanation of the fields in the Manifest Table below)</p>\r\r
+<table>\r\r
+<tbody>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Software Name </b>\r\r
+</td>\r\r
+<td>\r\r
+The name of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Version</b>\r\r
+</td>\r\r
+<td>\r\r
+Version of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>License Type</b>\r\r
+</td>\r\r
+<td>\r\r
+Type of license(s) under which TI will be providing\r\r
+software to the licensee (e.g. BSD-3-Clause, GPL-2.0, TI TSPA License, TI\r\r
+Commercial License). The license could be under Commercial terms or Open Source. See Open Source Reference License Disclaimer in\r\r
+the Disclaimers Section. Whenever possible, TI will use an <a href="http://spdx.org/licenses/"> SPDX Short Identifier </a> for an Open Source\r\r
+License. TI Commercial license terms are not usually included in the manifest and are conveyed through a variety \r\r
+of means such as a clickwrap license upon install, \r\r
+a signed license agreement and so forth.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Location</b>\r\r
+</td>\r\r
+<td>\r\r
+The directory name and path on the media or a specific file where the Software is located. Typically fully qualified path names \r\r
+are not used and instead the relevant top level directory of the application is given. \r\r
+A notation often used in the manifests is [as installed]/directory/*. Note that the asterisk implies that all\r\r
+files under that directory are licensed as the License Type field denotes. Any exceptions to this will \r\r
+generally be denoted as [as installed]/directory/* except as noted below which means as shown in subsequent rows of \r\r
+the manifest.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Delivered As</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Source&#8221;, &#8220;Binary&#8221; or &#8220;Source\r\r
+and Binary&#8221; and is the primary form the content of the Software is delivered\r\r
+in. If the Software is delivered in an archive format, this field\r\r
+applies to the contents of the archive. If the word Limited is used\r\r
+with Source, as in &#8220;Limited Source&#8221; or &#8220;Limited Source and Binary&#8221; then\r\r
+only portions of the Source for the application are provided.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Modified by TI</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Yes&#8221; or &#8220;No&#8221;. A &#8220;Yes&#8221; means\r\r
+TI has made changes to the Software. A &#8220;No&#8221; means TI has not made any\r\r
+changes. Note: This field is not applicable for Software &#8220;Obtained\r\r
+from&#8221; TI.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Obtained from</b>\r\r
+</td>\r\r
+<td>\r\r
+This field specifies from where or from whom TI obtained\r\r
+the Software. It may be a URL to an Open Source site, a 3<sup>rd</sup>\r\r
+party licensor, or TI. See Links Disclaimer in the Disclaimers\r\r
+Section.\r\r
+</td>\r\r
+</tr>\r\r
+</tbody>\r\r
+</table>\r\r
+</div><div class="DisclaimerSection">\r\r
+<h2>Disclaimers</h2>\r\r
+<h3>Export Control Classification Number (ECCN)</h3>\r\r
+<p>Any use of ECCNs listed in the Manifest is at the user&#8217;s risk\r\r
+and without recourse to TI. Your\r\r
+company, as the exporter of record, is responsible for determining the\r\r
+correct classification of any item at\r\r
+the time of export. Any export classification by TI of Software is for\r\r
+TI&#8217;s internal use only and shall not be construed as a representation\r\r
+or warranty\r\r
+regarding the proper export classification for such Software or whether\r\r
+an export\r\r
+license or other documentation is required for exporting such Software</p>\r\r
+<h3>Links in the Manifest</h3>\r\r
+<p>Any\r\r
+links appearing on this Manifest\r\r
+(for example in the &#8220;Obtained from&#8221; field) were verified at the time\r\r
+the Manifest was created. TI makes no guarantee that any listed links\r\r
+will\r\r
+remain active in the future.</p>\r\r
+<h3>Open Source License References</h3>\r\r
+<p>Your company is responsible for confirming the\r\r
+applicable license terms for any open source Software\r\r
+listed in this Manifest that was not &#8220;Obtained from&#8221; TI. Any open\r\r
+source license\r\r
+specified in this Manifest for Software that was\r\r
+not &#8220;Obtained from&#8221; TI is for TI&#8217;s internal use only and shall not be\r\r
+construed as a representation or warranty regarding the proper open\r\r
+source license terms\r\r
+for such Software.</p>\r\r
+</div><div class="ExportSection">\r\r
+<h2>Export Information</h2>\r\r
+<p>ECCN for Software included in this release:</p>\r\r
+Publicly Available  - Open Source or TI TSPA License\r\r
+</div><div class="ManifestTable">\r\r
+<!-- h2>Manifest Table</h2 -->\r\r
\r
+ <table> \r
+ <tbody> \r
\r
+ <h2> \r
+  I2C LLD Manifest Table \r
+ </h2> \r
\r
+  \r
+ <p> \r
\r
+ See the Legend above for a description of these columns. \r
\r
+ </p> \r
+  \r
+ <table id="targetpackages" name="targetpackages"> \r
+ <thead>  \r
+       <tr> \r
+               <td><b>Software Name</b></td> \r
+               <td><b>Version</b></td> \r
+               <td><b>License Type</b></td> \r
+               <td><b>Delivered As</b></td> \r
+               <td><b>Modified by TI</b></td> \r
+               <td></td> \r
+               <td></td> \r
+       </tr> \r
+ </thead>  \r
\r
\r
+ <tbody> \r
+       <tr> \r
+               <td id="name" name="name" rowspan="2"> \r
+ I2C LLD \r
+ </td> \r
+               <td id="version" name="version" rowspan="2"> \r
+ 01.00.00 \r
+ </td> \r
+               <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+               <td id="delivered" name="delivered" rowspan="2"> \r
+ Source and Binary \r
+ </td> \r
+               <td id="modified" name="modified" rowspan="2"> \r
+ N/A \r
+ </td> \r
+               <td><b>Location</b></td> \r
+               <td id="location" name="location"> \r
+ packages/ti/drv/i2c \r
+ </td> \r
+       </tr> \r
+       <tr> \r
+               <td><b>Obtained from</b></td> \r
+               <td id="obtained" name="obtained"> \r
+ Texas Instruments Incorporated \r
+ </td> \r
+       </tr> \r
\r
+ </tbody> \r
+ </table> \r
+  \r
+ </p> \r
+ </p> \r
+ <p> \r
+\r\r
+</div><div class="CreditSection">\r\r
+<h2>Credits</h2>\r\r
+<BR> <BR><BR><BR><BR>\r\r
+</div><div class="LicenseSection">\r\r
+<h2>Licenses</h2>\r\r
+<BR><h3><b> I2C LLD Licenses </b></h3><BR> <BR><BR><BR>/* Copyright (c) 2013 Texas Instruments Inc - http://www.ti.com */<BR><BR>/*<BR>*  Redistribution and use in source and binary forms, with or without<BR>*  modification, are permitted provided that the following conditions<BR>*  are met:<BR>*<BR>*    Redistributions of source code must retain the above copyright<BR>*    notice, this list of conditions and the following disclaimer.<BR>*<BR>*    Redistributions in binary form must reproduce the above copyright<BR>*    notice, this list of conditions and the following disclaimer in the<BR>*    documentation and/or other materials provided with the<BR>*    distribution.<BR>*<BR>*    Neither the name of Texas Instruments Incorporated nor the names of<BR>*    its contributors may be used to endorse or promote products derived<BR>*    from this software without specific prior written permission.<BR>*<BR>*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<BR>*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<BR>*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR<BR>*  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT<BR>*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<BR>*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<BR>*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<BR>*  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<BR>*  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT<BR>*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE<BR>*  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<BR>*<BR>*/<BR><BR><BR>\r\r
+</div>\r\r
+\r\r
+</body></html>
\ No newline at end of file
diff --git a/packages/ti/drv/i2c/docs/Module.xs b/packages/ti/drv/i2c/docs/Module.xs
new file mode 100755 (executable)
index 0000000..497c00d
--- /dev/null
@@ -0,0 +1,61 @@
+/******************************************************************************\r
+ * FILE PURPOSE: I2C Driver DOCS Module specification file.\r
+ ******************************************************************************\r
+ * FILE NAME: module.xs\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the module specification for the I2C Driver Documentation .\r
+ *\r
+ * Copyright (C) 2008-2016, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Load the library utility. */\r
+var libUtility = xdc.loadCapsule ("../build/buildlib.xs");\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : modBuild\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  The function is used to build the LLD documentation and add it to the\r
+ *  package.\r
+ **************************************************************************/\r
+function modBuild() \r
+{\r
+    /* Create the actual PROLOGUE Section for the Documentation.*/\r
+    Pkg.makePrologue += "release: i2c_document_generation\n";\r
+    Pkg.makePrologue += "i2c_document_generation:\n";\r
+    Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+    Pkg.makePrologue += "\t @echo Generating I2C Driver Documentation\n";\r
+    Pkg.makePrologue += "\t doxygen docs/Doxyfile\n";\r
+    Pkg.makePrologue += "\t @echo I2C Driver Documentation Generated \n";\r
+    Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+\r
+    /* Add the documentation file to the package. */\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tifooter.htm";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tiheader.htm";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tilogo.gif";\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/titagline.gif";\r
+\r
+\r
+    /* Add the I2C Software Manifest to the package */\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/I2C_LLD_SoftwareManifest.html";\r
+\r
+    /* Add the HTML documentation to the package */\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/doxygen";\r
+\r
+    /* Add the release notes to the package */\r
+    Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/ReleaseNotes_I2C_LLD.pdf";\r
+\r
+    /* Generate the ECLIPSE Plugin Generation: Only for SETUP Releases. */\r
+    if (driverInstallType == "SETUP")\r
+    {\r
+        Pkg.makePrologue += "all: eclipse_plugin_generation\n";\r
+        Pkg.makePrologue += "eclipse_plugin_generation:\n";\r
+        Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+        Pkg.makePrologue += "\t @echo I2C Eclipse Plugin Generation\n";\r
+        Pkg.makePrologue += "\t xs xdc.tools.eclipsePluginGen -o . -x ./eclipseDocs/sample.xml -c ./eclipseDocs/toc_cdoc_sample.xml\n";\r
+        Pkg.makePrologue += "\t @echo I2C Eclipse Plugin Generated \n";\r
+        Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+    }\r
+}\r
+\r
diff --git a/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.doc b/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.doc
new file mode 100755 (executable)
index 0000000..03c9667
Binary files /dev/null and b/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.doc differ
diff --git a/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.pdf b/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.pdf
new file mode 100755 (executable)
index 0000000..840a260
Binary files /dev/null and b/packages/ti/drv/i2c/docs/ReleaseNotes_I2C_LLD.pdf differ
diff --git a/packages/ti/drv/i2c/docs/doxyfile.xdt b/packages/ti/drv/i2c/docs/doxyfile.xdt
new file mode 100755 (executable)
index 0000000..145c0eb
--- /dev/null
@@ -0,0 +1,298 @@
+%%{\r
+/*!\r
+ *  This template implements the Doxyfile\r
+ */  \r
+  /* Versioning */\r
+  var ver = this;\r
+  var packageVersion = ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3];\r
+\r
+%%}\r
+\r
+# Doxyfile 1.5.6\r
+\r
+#---------------------------------------------------------------------------\r
+# Project related configuration options\r
+#---------------------------------------------------------------------------\r
+DOXYFILE_ENCODING      = UTF-8\r
+PROJECT_NAME           = "I2C Low Level Driver"\r
+PROJECT_NUMBER         = `packageVersion`\r
+OUTPUT_DIRECTORY       = ./docs/doxygen\r
+CREATE_SUBDIRS         = NO\r
+OUTPUT_LANGUAGE        = English\r
+BRIEF_MEMBER_DESC      = YES\r
+REPEAT_BRIEF           = YES\r
+ABBREVIATE_BRIEF       = "The $name class" \\r
+                         "The $name widget" \\r
+                         "The $name file" \\r
+                         is \\r
+                         provides \\r
+                         specifies \\r
+                         contains \\r
+                         represents \\r
+                         a \\r
+                         an \\r
+                         the\r
+ALWAYS_DETAILED_SEC    = NO\r
+INLINE_INHERITED_MEMB  = NO\r
+FULL_PATH_NAMES        = NO\r
+STRIP_FROM_PATH        = \r
+STRIP_FROM_INC_PATH    = \r
+SHORT_NAMES            = NO\r
+JAVADOC_AUTOBRIEF      = NO\r
+QT_AUTOBRIEF           = NO\r
+MULTILINE_CPP_IS_BRIEF = NO\r
+INHERIT_DOCS           = YES\r
+SEPARATE_MEMBER_PAGES  = NO\r
+TAB_SIZE               = 8\r
+ALIASES                = \r
+OPTIMIZE_OUTPUT_FOR_C  = YES\r
+OPTIMIZE_OUTPUT_JAVA   = NO\r
+OPTIMIZE_FOR_FORTRAN   = NO\r
+OPTIMIZE_OUTPUT_VHDL   = NO\r
+BUILTIN_STL_SUPPORT    = NO\r
+CPP_CLI_SUPPORT        = NO\r
+SIP_SUPPORT            = NO\r
+IDL_PROPERTY_SUPPORT   = YES\r
+DISTRIBUTE_GROUP_DOC   = NO\r
+SUBGROUPING            = YES\r
+TYPEDEF_HIDES_STRUCT   = NO\r
+#---------------------------------------------------------------------------\r
+# Build related configuration options\r
+#---------------------------------------------------------------------------\r
+EXTRACT_ALL            = NO\r
+EXTRACT_PRIVATE        = NO\r
+EXTRACT_STATIC         = YES\r
+EXTRACT_LOCAL_CLASSES  = YES\r
+EXTRACT_LOCAL_METHODS  = NO\r
+EXTRACT_ANON_NSPACES   = NO\r
+HIDE_UNDOC_MEMBERS     = YES\r
+HIDE_UNDOC_CLASSES     = YES\r
+HIDE_FRIEND_COMPOUNDS  = NO\r
+HIDE_IN_BODY_DOCS      = NO\r
+INTERNAL_DOCS          = NO\r
+CASE_SENSE_NAMES       = NO\r
+HIDE_SCOPE_NAMES       = NO\r
+SHOW_INCLUDE_FILES     = YES\r
+INLINE_INFO            = YES\r
+SORT_MEMBER_DOCS       = YES\r
+SORT_BRIEF_DOCS        = NO\r
+SORT_GROUP_NAMES       = NO\r
+SORT_BY_SCOPE_NAME     = NO\r
+GENERATE_TODOLIST      = YES\r
+GENERATE_TESTLIST      = YES\r
+GENERATE_BUGLIST       = YES\r
+GENERATE_DEPRECATEDLIST= YES\r
+ENABLED_SECTIONS       = \r
+MAX_INITIALIZER_LINES  = 30\r
+SHOW_USED_FILES        = YES\r
+SHOW_FILES             = YES\r
+SHOW_NAMESPACES        = YES\r
+FILE_VERSION_FILTER    = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to warning and progress messages\r
+#---------------------------------------------------------------------------\r
+QUIET                  = NO\r
+WARNINGS               = YES\r
+WARN_IF_UNDOCUMENTED   = YES\r
+WARN_IF_DOC_ERROR      = YES\r
+WARN_NO_PARAMDOC       = NO\r
+WARN_FORMAT            = "$file:$line: $text"\r
+WARN_LOGFILE           = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the input files\r
+#---------------------------------------------------------------------------\r
+INPUT                  = \r
+INPUT_ENCODING         = UTF-8\r
+FILE_PATTERNS          = *.c \\r
+                         *.cc \\r
+                         *.cxx \\r
+                         *.cpp \\r
+                         *.c++ \\r
+                         *.d \\r
+                         *.java \\r
+                         *.ii \\r
+                         *.ixx \\r
+                         *.ipp \\r
+                         *.i++ \\r
+                         *.inl \\r
+                         *.h \\r
+                         *.hh \\r
+                         *.hxx \\r
+                         *.hpp \\r
+                         *.h++ \\r
+                         *.idl \\r
+                         *.odl \\r
+                         *.cs \\r
+                         *.php \\r
+                         *.php3 \\r
+                         *.inc \\r
+                         *.m \\r
+                         *.mm \\r
+                         *.dox \\r
+                         *.py \\r
+                         *.f90 \\r
+                         *.f \\r
+                         *.vhd \\r
+                         *.vhdl\r
+RECURSIVE              = YES\r
+EXCLUDE                = YES \\r
+                         ./example \\r
+                         ./test \\r
+                         ./package \\r
+                         ./packages\r
+EXCLUDE_SYMLINKS       = NO\r
+EXCLUDE_PATTERNS       = icss_cfg_regs.h firmware_version.h icss_iep_regs.h icss_intc_regs.h I2C_macros.h I2C_function.h I2C_scheduler.h icss_miirt_regs.h icss_ctrl_regs.h\r
+EXCLUDE_SYMBOLS        = \r
+EXAMPLE_PATH           = \r
+EXAMPLE_PATTERNS       = *\r
+EXAMPLE_RECURSIVE      = NO\r
+IMAGE_PATH             = \r
+INPUT_FILTER           = \r
+FILTER_PATTERNS        = \r
+FILTER_SOURCE_FILES    = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to source browsing\r
+#---------------------------------------------------------------------------\r
+SOURCE_BROWSER         = NO\r
+INLINE_SOURCES         = NO\r
+STRIP_CODE_COMMENTS    = YES\r
+REFERENCED_BY_RELATION = NO\r
+REFERENCES_RELATION    = NO\r
+REFERENCES_LINK_SOURCE = YES\r
+USE_HTAGS              = NO\r
+VERBATIM_HEADERS       = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the alphabetical class index\r
+#---------------------------------------------------------------------------\r
+ALPHABETICAL_INDEX     = NO\r
+COLS_IN_ALPHA_INDEX    = 5\r
+IGNORE_PREFIX          = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the HTML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_HTML          = YES\r
+HTML_OUTPUT            = html\r
+HTML_FILE_EXTENSION    = .html\r
+HTML_HEADER            = ./docs/tiheader.htm\r
+HTML_FOOTER            = ./docs/tifooter.htm\r
+HTML_STYLESHEET        = \r
+GENERATE_HTMLHELP      = YES\r
+GENERATE_DOCSET        = NO\r
+DOCSET_FEEDNAME        = "Doxygen generated docs"\r
+DOCSET_BUNDLE_ID       = org.doxygen.Project\r
+HTML_DYNAMIC_SECTIONS  = NO\r
+CHM_FILE               = ..\..\i2clldDocs.chm\r
+HHC_LOCATION           = hhc.exe\r
+GENERATE_CHI           = NO\r
+CHM_INDEX_ENCODING     = \r
+BINARY_TOC             = NO\r
+TOC_EXPAND             = NO\r
+DISABLE_INDEX          = NO\r
+ENUM_VALUES_PER_LINE   = 4\r
+GENERATE_TREEVIEW      = NONE\r
+TREEVIEW_WIDTH         = 250\r
+FORMULA_FONTSIZE       = 10\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the LaTeX output\r
+#---------------------------------------------------------------------------\r
+GENERATE_LATEX         = NO\r
+LATEX_OUTPUT           = latex\r
+LATEX_CMD_NAME         = latex\r
+MAKEINDEX_CMD_NAME     = makeindex\r
+COMPACT_LATEX          = NO\r
+PAPER_TYPE             = a4wide\r
+EXTRA_PACKAGES         = \r
+LATEX_HEADER           = \r
+PDF_HYPERLINKS         = YES\r
+USE_PDFLATEX           = YES\r
+LATEX_BATCHMODE        = NO\r
+LATEX_HIDE_INDICES     = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the RTF output\r
+#---------------------------------------------------------------------------\r
+GENERATE_RTF           = NO\r
+RTF_OUTPUT             = rtf\r
+COMPACT_RTF            = NO\r
+RTF_HYPERLINKS         = NO\r
+RTF_STYLESHEET_FILE    = \r
+RTF_EXTENSIONS_FILE    = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the man page output\r
+#---------------------------------------------------------------------------\r
+GENERATE_MAN           = NO\r
+MAN_OUTPUT             = man\r
+MAN_EXTENSION          = .3\r
+MAN_LINKS              = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the XML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_XML           = NO\r
+XML_OUTPUT             = xml\r
+XML_SCHEMA             = \r
+XML_DTD                = \r
+XML_PROGRAMLISTING     = YES\r
+#---------------------------------------------------------------------------\r
+# configuration options for the AutoGen Definitions output\r
+#---------------------------------------------------------------------------\r
+GENERATE_AUTOGEN_DEF   = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the Perl module output\r
+#---------------------------------------------------------------------------\r
+GENERATE_PERLMOD       = NO\r
+PERLMOD_LATEX          = NO\r
+PERLMOD_PRETTY         = YES\r
+PERLMOD_MAKEVAR_PREFIX = \r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the preprocessor   \r
+#---------------------------------------------------------------------------\r
+ENABLE_PREPROCESSING   = YES\r
+MACRO_EXPANSION        = NO\r
+EXPAND_ONLY_PREDEF     = NO\r
+SEARCH_INCLUDES        = YES\r
+INCLUDE_PATH           = \r
+INCLUDE_FILE_PATTERNS  = \r
+PREDEFINED             = \r
+EXPAND_AS_DEFINED      = \r
+SKIP_FUNCTION_MACROS   = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to external references   \r
+#---------------------------------------------------------------------------\r
+TAGFILES               = \r
+GENERATE_TAGFILE       = \r
+ALLEXTERNALS           = NO\r
+EXTERNAL_GROUPS        = YES\r
+PERL_PATH              = /usr/bin/perl\r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the dot tool   \r
+#---------------------------------------------------------------------------\r
+CLASS_DIAGRAMS         = NO\r
+MSCGEN_PATH            = \r
+HIDE_UNDOC_RELATIONS   = YES\r
+HAVE_DOT               = NO\r
+DOT_FONTPATH           = \r
+CLASS_GRAPH            = YES\r
+COLLABORATION_GRAPH    = YES\r
+GROUP_GRAPHS           = YES\r
+UML_LOOK               = NO\r
+TEMPLATE_RELATIONS     = NO\r
+INCLUDE_GRAPH          = YES\r
+INCLUDED_BY_GRAPH      = YES\r
+CALL_GRAPH             = NO\r
+CALLER_GRAPH           = NO\r
+GRAPHICAL_HIERARCHY    = YES\r
+DIRECTORY_GRAPH        = YES\r
+DOT_IMAGE_FORMAT       = png\r
+DOT_PATH               = \r
+DOTFILE_DIRS           = \r
+DOT_GRAPH_MAX_NODES    = 50\r
+MAX_DOT_GRAPH_DEPTH    = 1000\r
+DOT_TRANSPARENT        = YES\r
+DOT_MULTI_TARGETS      = NO\r
+GENERATE_LEGEND        = YES\r
+DOT_CLEANUP            = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to the search engine   \r
+#---------------------------------------------------------------------------\r
+SEARCHENGINE           = NO\r
+\r
+\r
diff --git a/packages/ti/drv/i2c/docs/tifooter.htm b/packages/ti/drv/i2c/docs/tifooter.htm
new file mode 100755 (executable)
index 0000000..c35c513
--- /dev/null
@@ -0,0 +1,4 @@
+<hr size="1"><small>\r
+Copyright  $year, Texas Instruments Incorporated</small>\r
+</body>\r
+</html>\r
diff --git a/packages/ti/drv/i2c/docs/tiheader.htm b/packages/ti/drv/i2c/docs/tiheader.htm
new file mode 100755 (executable)
index 0000000..c38e6fb
--- /dev/null
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">\r
+<title>$title</title>\r
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css">\r
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">\r
+</head><body>\r
+<table width=100%>\r
+<tr>\r
+  <td bgcolor="black" width="1"><a href="http://www.ti.com"><img border=0 src="../../tilogo.gif"></a></td>\r
+  <td bgcolor="red"><img src="../../titagline.gif"></td>\r
+</tr>\r
+</table>\r
diff --git a/packages/ti/drv/i2c/docs/tilogo.gif b/packages/ti/drv/i2c/docs/tilogo.gif
new file mode 100755 (executable)
index 0000000..f2fab2d
Binary files /dev/null and b/packages/ti/drv/i2c/docs/tilogo.gif differ
diff --git a/packages/ti/drv/i2c/docs/titagline.gif b/packages/ti/drv/i2c/docs/titagline.gif
new file mode 100755 (executable)
index 0000000..743a024
Binary files /dev/null and b/packages/ti/drv/i2c/docs/titagline.gif differ
diff --git a/packages/ti/drv/i2c/example/Module.xs b/packages/ti/drv/i2c/example/Module.xs
new file mode 100755 (executable)
index 0000000..4bc2e56
--- /dev/null
@@ -0,0 +1,58 @@
+/******************************************************************************\r
+ * FILE PURPOSE: I2C LLD example files.\r
+ ******************************************************************************\r
+ * FILE NAME: module.xs\r
+ *\r
+ * DESCRIPTION: \r
+ *  This file contains the module specification for I2C LLD example files.\r
+ *\r
+ * Copyright (C) 2009-2016, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Load the library utility. */\r
+var libUtility = xdc.loadCapsule ("../build/buildlib.xs");\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : modBuild\r
+ **************************************************************************\r
+ * DESCRIPTION   :\r
+ *  The function is used to add all the source files in the example \r
+ *  directory into the package.\r
+ **************************************************************************/\r
+function modBuild() \r
+{\r
+    /* Add all the .c files to the release package. */\r
+    var exampleFiles = libUtility.listAllFiles (".c", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+    /* Add all the .h files to the release package. */\r
+    var exampleFiles = libUtility.listAllFiles (".h", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+    /* Add all the .cmd files to the release package. */\r
+    var exampleFiles = libUtility.listAllFiles (".cmd", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+    /* Add all the .cfg files to the release package. */\r
+    var exampleFiles = libUtility.listAllFiles (".cfg", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+    /* Add all the make files to the release package. */\r
+    var exampleFiles = libUtility.listAllFiles ("makefile", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+    /* Add the .txt to the package */\r
+    var exampleFiles = libUtility.listAllFiles (".txt", "example", true);\r
+    for (var k = 0 ; k < exampleFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+        \r
+    /* Add all the .mk files to the release package. */\r
+    var mkFiles = libUtility.listAllFiles (".mk", "example", true);\r
+    for (var k = 0 ; k < mkFiles.length; k++)\r
+        Pkg.otherFiles[Pkg.otherFiles.length++] = mkFiles[k];\r
+\r
+}\r
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_bbbAM335x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_bbbAM335x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..5d458fc
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am335x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_bbbam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard  -DSOC_AM335X -DbbbAM335x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections  "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_evmAM335x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_evmAM335x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..c0b7007
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am335x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_evmam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard  -DSOC_AM335X -DevmAM335x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections  "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_iceAMIC110_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_iceAMIC110_armExampleProject.txt
new file mode 100644 (file)
index 0000000..a764cf9
--- /dev/null
@@ -0,0 +1,6 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_iceamic110.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard  -DSOC_AM335X -DiceAMIC110 -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections  "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_icev2AM335x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_icev2AM335x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..55173cf
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am335x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_icev2am335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard  -DSOC_AM335X -Dicev2AM335x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections  "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_skAM335x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/I2C_Example_skAM335x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..4041813
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am335x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_skam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard  -DSOC_AM335X -DskAM335x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections  "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_bbbam335x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_bbbam335x.cfg
new file mode 100644 (file)
index 0000000..6ed2429
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ *  \file   i2c_arm_bbbam335x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM335x Beaglebone.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "bbbAM335x";
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true; 
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_evmam335x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_evmam335x.cfg
new file mode 100644 (file)
index 0000000..4b16740
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ *  \file   i2c_arm_evmam335x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM335x GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM335x";
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true; 
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_iceamic110.cfg b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_iceamic110.cfg
new file mode 100644 (file)
index 0000000..85f45c0
--- /dev/null
@@ -0,0 +1,206 @@
+/**
+ *  \file   i2c_arm_iceamic110.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM335x ICEV2 EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "iceAMIC110";
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+UartPackage.Settings.socType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true; 
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_icev2am335x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_icev2am335x.cfg
new file mode 100644 (file)
index 0000000..228f132
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ *  \file   i2c_arm_icev2am335x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM335x ICEV2 EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "icev2AM335x";
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true; 
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_skam335x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am335x/armv7/bios/i2c_arm_skam335x.cfg
new file mode 100644 (file)
index 0000000..9bf3f47
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ *  \file   i2c_arm_skam335x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM335x SK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "skAM335x";
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true; 
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_evmAM437x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_evmAM437x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..faa5849
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am437x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_evmam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437x -DevmAM437x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_idkAM437x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_idkAM437x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..dabe940
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am437x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_idkam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437x -DidkAM437x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_skAM437x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/I2C_Example_skAM437x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..98a6d65
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am437x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_skam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437x -DskAM437x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c -I${PDK_INSTALL_PATH} -I${EDMA3LLD_BIOS6_INSTALLDIR}/packages "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_evmam437x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_evmam437x.cfg
new file mode 100644 (file)
index 0000000..a70626c
--- /dev/null
@@ -0,0 +1,209 @@
+/**
+ *  \file   i2c_arm_evmam437x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM437x GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = false;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+Hwi.initStackFlag = false;
+Hwi.checkStackFlag = false;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+BIOS.cpuFreq.lo = 600000000;
+
+
+
+/* ================ Driver configuration ================ */
+
+/* Load OSAL Package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am437x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM437x";
+
+
+/* Load the uart package */
+var UARTPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache');
+Cache.enableCache = true;
+Cache.configureL2Sram = false;//DDR build
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44DF2800;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+                          
+var peripheralBaseAddr = 0x44e0b000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_idkam437x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_idkam437x.cfg
new file mode 100644 (file)
index 0000000..156bcd1
--- /dev/null
@@ -0,0 +1,209 @@
+/**
+ *  \file   i2c_arm_idkam437x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM437x IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = false;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+Hwi.initStackFlag = false;
+Hwi.checkStackFlag = false;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+BIOS.cpuFreq.lo = 600000000;
+
+
+
+/* ================ Driver configuration ================ */
+
+/* Load OSAL Package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am437x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM437x";
+
+
+/* Load the uart package */
+var UARTPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache');
+Cache.enableCache = true;
+Cache.configureL2Sram = false;//DDR build
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44DF2800;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+                          
+var peripheralBaseAddr = 0x44e0b000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_skam437x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am437x/armv7/bios/i2c_arm_skam437x.cfg
new file mode 100644 (file)
index 0000000..c8ac816
--- /dev/null
@@ -0,0 +1,209 @@
+/**
+ *  \file   i2c_arm_skam437x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM437x SK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */ 
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = false;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+Hwi.initStackFlag = false;
+Hwi.checkStackFlag = false;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+BIOS.cpuFreq.lo = 600000000;
+
+
+
+/* ================ Driver configuration ================ */
+
+/* Load OSAL Package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am437x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "skAM437x";
+
+
+/* Load the uart package */
+var UARTPackage = xdc.loadPackage('ti.drv.uart');
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache');
+Cache.enableCache = true;
+Cache.configureL2Sram = false;//DDR build
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+    type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+    tex: 0,
+    bufferable : false,                // bufferable
+    cacheable  : false,                // cacheable
+    shareable  : false,                // shareable
+    noexecute  : true,                 // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44DF2800;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
+                          
+var peripheralBaseAddr = 0x44e0b000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+                          peripheralBaseAddr,
+                          peripheralAttrs);
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/I2C_BasicExample_idkAM571x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/I2C_BasicExample_idkAM571x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..17924e5
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am571x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/i2c_arm_idkAM571x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DSOC_AM571x -DidkAM571x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/i2c_arm_idkAM571x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am571x/armv7/bios/i2c_arm_idkAM571x.cfg
new file mode 100644 (file)
index 0000000..b89e3a2
--- /dev/null
@@ -0,0 +1,223 @@
+/**
+ *  \file   i2c_arm_idkAM571x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM571X IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 - 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Log = xdc.useModule('xdc.runtime.Log');
+var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var ti_sysbios_family_arm_gic_Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');
+var InitXbar    = xdc.useModule("ti.sysbios.family.shared.vayu.IntXbar");
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x20000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;       
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+SysMin.flushAtExit = false;
+ */
+
+/* Circular buffer size for System_printf() */
+SysMin.bufSize = 0x200;
+System.SupportProxy = SysMin;
+
+/* 
+ * Create and install logger for the whole system
+ */
+var loggerBufParams = new LoggerBuf.Params();
+loggerBufParams.numEntries = 16;
+var logger0 = LoggerBuf.create(loggerBufParams);
+Defaults.common$.logger = logger0;
+Main.common$.diags_INFO = Diags.ALWAYS_ON;
+
+
+if (Program.build.target.$name.match(/gnu/)) {
+    if (Program.build.target.$name.match(/A8F/) ||
+        Program.build.target.$name.match(/A9F/) ||
+        Program.build.target.$name.match(/A15F/)) {
+        var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+    }
+}
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+
+/*
+ * Build a custom SYS/BIOS library from sources.
+ */
+BIOS.libType = BIOS.LibType_Custom;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0x1000;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+/* ================ Task configuration ================ */
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am571x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* Load the UART package */
+var UART = xdc.loadPackage('ti.drv.uart');    
+
+/* Load the Board package and set the board name */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM571x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache1  = xdc.useModule('ti.sysbios.family.arm.a15.Cache');
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a15.Mmu');
+
+/* Enable the cache */
+Cache1.enableCache = true;
+
+/* Enable the MMU (Required for L1 data caching) */
+Mmu.enableMMU = true;
+
+var attrs = new Mmu.DescriptorAttrs();
+Mmu.initDescAttrsMeta(attrs);
+attrs.type = Mmu.DescriptorType_BLOCK;
+attrs.noExecute = true;
+attrs.accPerm = 0;       // R/W at PL1
+attrs.attrIndx = 4;       // Use MAIR0 Byte2
+Mmu.setMAIRMeta(4, 0x04);
+Mmu.setSecondLevelDescMeta(0x43200000, 0x43200000, attrs);
+
+/* Set IO Delay configuration areas as non-cache */
+attrs.attrIndx = 1;
+Mmu.setSecondLevelDescMeta(0x4844a000, 0x4844a000, attrs);
+Mmu.setSecondLevelDescMeta(0x4ae07d00, 0x4ae07d00, attrs);
+Mmu.setSecondLevelDescMeta(0x4A000000, 0x4A000000, attrs);
+Mmu.setSecondLevelDescMeta(0x4B200000, 0x4B200000, attrs);
+
+/* ================ Memory sections configuration ================ */
+Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
+Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/I2C_BasicExample_idkAM571x_c66xExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/I2C_BasicExample_idkAM571x_c66xExampleProject.txt
new file mode 100644 (file)
index 0000000..852200f
--- /dev/null
@@ -0,0 +1,6 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am571x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/i2c_test_idkAM571x.cfg" 
+-ccs.setCompilerOptions "-D -mv6600 -g -dSOC_AM571x -didkAM571x -dUSE_BIOS -dC66X --diag_warning=225 --diag_warning=994 --diag_warning=262 --diag_suppress=1111 --diag_suppress=827  --diag_suppress=824  --diag_suppress=837  --diag_suppress=1037 --diag_suppress=195 --diag_suppress=77  --diag_suppress=232 -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/i2c_test_idkAM571x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am571x/c66/bios/i2c_test_idkAM571x.cfg
new file mode 100644 (file)
index 0000000..e8ae899
--- /dev/null
@@ -0,0 +1,119 @@
+/**
+ *  \file   i2c_test_idkAM571x.cfg
+ *
+ *  \brief  Sysbios config file for i2c C66X test project on AM571X IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Memory                      =   xdc.useModule('xdc.runtime.Memory');
+var HeapMem                     =   xdc.useModule('ti.sysbios.heaps.HeapMem');
+var HeapBuf                     =   xdc.useModule('ti.sysbios.heaps.HeapBuf');
+var Log                         =   xdc.useModule('xdc.runtime.Log');
+var Task                        =   xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore                   =   xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi                         = xdc.useModule('ti.sysbios.family.c64p.Hwi');
+var ECM                         =   xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
+var System                      =   xdc.useModule('xdc.runtime.System');
+SysStd                          =   xdc.useModule('xdc.runtime.SysStd');
+System.SupportProxy             =   SysStd;
+
+/* Create a default system heap using ti.bios.HeapMem. */
+var heapMemParams1              =   new HeapMem.Params;
+heapMemParams1.size             =   8192 * 25;
+heapMemParams1.sectionName      =   "systemHeap";
+Program.global.heap0            =   HeapMem.create(heapMemParams1);
+
+/* This is the default memory heap. */
+Memory.defaultHeapInstance      =   Program.global.heap0;
+Program.sectMap["systemHeap"]   =   Program.platform.stackMemory;
+
+/*
+ * Enable Event Groups here and registering of ISR for specific GEM INTC is done
+ * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
+ */
+var exception          =       xdc.useModule('ti.sysbios.family.c64p.Exception');
+exception.enablePrint = true;
+
+
+/* ================ BIOS configuration ================ */
+var BIOS                        =   xdc.useModule('ti.sysbios.BIOS');
+
+/* Enable BIOS Task Scheduler */
+BIOS.taskEnabled                       =   true;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am571x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+
+/* Load the UART package */
+var UART = xdc.loadPackage('ti.drv.uart');    
+
+/* Load the Board package and set the board name */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM571x";
+
+/* ================ Memory sections configuration ================ */
+Program.sectMap[".text"] = "EXT_RAM";
+Program.sectMap[".const"] = "EXT_RAM";
+Program.sectMap[".plt"] = "EXT_RAM";
+Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
+Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/I2C_BasicExample_idkAM571x_m4ExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/I2C_BasicExample_idkAM571x_m4ExampleProject.txt
new file mode 100644 (file)
index 0000000..01b9b3d
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am571x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/i2c_m4_idkAM571x.cfg"
+-ccs.setCompilerOptions "-qq -pdsw255 -DMAKEFILE_BUILD -mv7M4 --float_support=vfplib --abi=eabi -g -DSOC_AM572x -DidkAM571x -DAM5XX_FAMILY_BUILD -Dti_targets_arm_elf_M4 -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions "--strict_compatibility=on"
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/i2c_m4_idkAM571x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am571x/m4/bios/i2c_m4_idkAM571x.cfg
new file mode 100644 (file)
index 0000000..a8ae8d1
--- /dev/null
@@ -0,0 +1,222 @@
+/**
+ *  \file   i2c_m4_idkAM571x.cfg
+ *
+ *  \brief  Sysbios config file for i2c M4 example project on AM571X IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Main                       = xdc.useModule('xdc.runtime.Main');
+var System                     = xdc.useModule('xdc.runtime.System');
+var Task                       = xdc.useModule('ti.sysbios.knl.Task');
+var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
+var Semaphore          = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+
+
+/* ================ BIOS configuration ================ */
+var BIOS               = xdc.useModule('ti.sysbios.BIOS');
+
+/* 
+ * Create and install logger for the whole system
+ */
+BIOS.libType = BIOS.LibType_Custom;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0xA0000;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */ 
+var osType = "tirtos"
+var Osal = xdc.useModule('ti.osal.Settings');
+Osal.osType = osType;
+
+/*use CSL package*/
+var socType           = "am571x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+var I2c                         = xdc.loadPackage('ti.drv.i2c');
+I2c.Settings.socType = socType;
+
+var Uart                       = xdc.loadPackage('ti.drv.uart');
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM571x";
+
+/*use CSL package*/
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* ================ Cache and MMU configuration ================ */
+
+/* Enable cache */
+var Cache       = xdc.useModule('ti.sysbios.hal.unicache.Cache');
+Cache.enableCache = true;
+
+/* Use AMMU module */
+var AMMU            = xdc.useModule('ti.sysbios.hal.ammu.AMMU');
+
+/* Large PAGE */
+AMMU.largePages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[0].logicalAddress = 0x40000000;
+AMMU.largePages[0].translatedAddress = 0x40000000;
+AMMU.largePages[0].translationEnabled = AMMU.Enable_YES;
+AMMU.largePages[0].size = AMMU.Large_512M;
+AMMU.largePages[0].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[0].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.largePages[0].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[0].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.largePages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[1].logicalAddress = 0x80000000;
+AMMU.largePages[1].translatedAddress = 0x80000000;
+AMMU.largePages[1].translationEnabled = AMMU.Enable_YES;
+AMMU.largePages[1].size = AMMU.Large_512M;
+AMMU.largePages[1].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.largePages[1].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[1].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[1].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[1].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.largePages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[2].logicalAddress = 0xA0000000;
+AMMU.largePages[2].translatedAddress = 0xA0000000;
+AMMU.largePages[2].translationEnabled = AMMU.Enable_YES;
+AMMU.largePages[2].size = AMMU.Large_512M;
+AMMU.largePages[2].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[2].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.largePages[2].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[2].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.largePages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[3].logicalAddress = 0x60000000;
+AMMU.largePages[3].translatedAddress = 0x40000000;
+AMMU.largePages[3].translationEnabled = AMMU.Enable_YES;
+AMMU.largePages[3].size = AMMU.Large_512M;
+AMMU.largePages[3].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[3].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.largePages[3].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[3].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+/* Medium Page */
+AMMU.mediumPages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[0].logicalAddress = 0x00300000;
+AMMU.mediumPages[0].translatedAddress = 0x40300000;
+AMMU.mediumPages[0].translationEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[0].size = AMMU.Medium_256K;
+
+AMMU.mediumPages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[1].logicalAddress = 0x00400000;
+AMMU.mediumPages[1].translatedAddress = 0x40400000;
+AMMU.mediumPages[1].translationEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[1].size = AMMU.Medium_256K;
+AMMU.mediumPages[1].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[1].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[1].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+/* Small Page */
+AMMU.smallPages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[0].logicalAddress = 0x00000000;
+AMMU.smallPages[0].translatedAddress = 0x55020000;
+AMMU.smallPages[0].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[0].size = AMMU.Small_16K;
+AMMU.smallPages[0].volatileQualifier = AMMU.Volatile_FOLLOW;
+AMMU.smallPages[0].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[0].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.smallPages[0].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[0].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.smallPages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[1].logicalAddress = 0x40000000;
+AMMU.smallPages[1].translatedAddress = 0x55080000;
+AMMU.smallPages[1].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[1].size = AMMU.Small_16K;
+AMMU.smallPages[1].volatileQualifier = AMMU.Volatile_FOLLOW;
+AMMU.smallPages[1].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[1].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.smallPages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[1].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.smallPages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[2].logicalAddress = 0x00004000;
+AMMU.smallPages[2].translatedAddress = 0x55024000;
+AMMU.smallPages[2].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[2].size = AMMU.Small_16K;
+AMMU.smallPages[2].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[2].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.smallPages[2].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[2].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.smallPages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[3].logicalAddress = 0x00008000;
+AMMU.smallPages[3].translatedAddress = 0x55028000;
+AMMU.smallPages[3].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[3].size = AMMU.Small_16K;
+AMMU.smallPages[3].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[3].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.smallPages[3].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[3].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+
+AMMU.smallPages[4].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[4].logicalAddress = 0x20000000;
+AMMU.smallPages[4].translatedAddress = 0x55020000;
+AMMU.smallPages[4].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[4].size = AMMU.Small_16K;
+AMMU.smallPages[4].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[4].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.smallPages[4].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[4].L2_posted = AMMU.PostedPolicy_NON_POSTED;
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_callback_mode_idkAM572x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_callback_mode_idkAM572x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..7fc3262
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read_callback.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DSOC_AM572x -DidkAM572x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_evmAM572x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_evmAM572x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..0cd94d2
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DSOC_AM572x -DevmAM572x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_idkAM572x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_BasicExample_idkAM572x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..b16244b
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DSOC_AM572x -DidkAM572x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_ErrorRecovery_evmAM572x_armExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/I2C_ErrorRecovery_evmAM572x_armExampleProject.txt
new file mode 100644 (file)
index 0000000..9a31a15
--- /dev/null
@@ -0,0 +1,7 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read_recovery.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DSOC_AM572x -DevmAM572x -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lrdimon -lgcc -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_evmAM572x.cfg
new file mode 100644 (file)
index 0000000..d33b051
--- /dev/null
@@ -0,0 +1,222 @@
+/**
+ *  \file   i2c_arm_evmAM572x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM572X GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Log = xdc.useModule('xdc.runtime.Log');
+var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var ti_sysbios_family_arm_gic_Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');
+var InitXbar    = xdc.useModule("ti.sysbios.family.shared.vayu.IntXbar");
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x20000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;       
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+SysMin.flushAtExit = false;
+ */
+
+/* Circular buffer size for System_printf() */
+SysMin.bufSize = 0x200;
+System.SupportProxy = SysMin;
+
+/* 
+ * Create and install logger for the whole system
+ */
+var loggerBufParams = new LoggerBuf.Params();
+loggerBufParams.numEntries = 16;
+var logger0 = LoggerBuf.create(loggerBufParams);
+Defaults.common$.logger = logger0;
+Main.common$.diags_INFO = Diags.ALWAYS_ON;
+
+
+if (Program.build.target.$name.match(/gnu/)) {
+    if (Program.build.target.$name.match(/A8F/) ||
+        Program.build.target.$name.match(/A9F/) ||
+        Program.build.target.$name.match(/A15F/)) {
+        var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+    }
+}
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+
+/*
+ * Build a custom SYS/BIOS library from sources.
+ */
+BIOS.libType = BIOS.LibType_Custom;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0x1000;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+/* ================ Task configuration ================ */
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am572x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* Load the UART package */
+var UART = xdc.loadPackage('ti.drv.uart');    
+
+/* Load the Board package and set the board name */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM572x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache1  = xdc.useModule('ti.sysbios.family.arm.a15.Cache');
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a15.Mmu');
+
+/* Enable the cache */
+Cache1.enableCache = true;
+
+/* Enable the MMU (Required for L1 data caching) */
+Mmu.enableMMU = true;
+
+var attrs = new Mmu.DescriptorAttrs();
+Mmu.initDescAttrsMeta(attrs);
+attrs.type = Mmu.DescriptorType_BLOCK;
+attrs.noExecute = true;
+attrs.accPerm = 0;       // R/W at PL1
+attrs.attrIndx = 4;       // Use MAIR0 Byte2
+Mmu.setMAIRMeta(4, 0x04);
+Mmu.setSecondLevelDescMeta(0x43200000, 0x43200000, attrs);
+
+/* Set IO Delay configuration areas as non-cache */
+attrs.attrIndx = 1;
+Mmu.setSecondLevelDescMeta(0x4844a000, 0x4844a000, attrs);
+Mmu.setSecondLevelDescMeta(0x4ae07d00, 0x4ae07d00, attrs);
+
+
+/* ================ Memory sections configuration ================ */
+Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
+Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am572x/armv7/bios/i2c_arm_idkAM572x.cfg
new file mode 100644 (file)
index 0000000..f5b90d9
--- /dev/null
@@ -0,0 +1,222 @@
+/**
+ *  \file   i2c_arm_idkAM572x.cfg
+ *
+ *  \brief  Sysbios config file for i2c example project on AM572X IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Log = xdc.useModule('xdc.runtime.Log');
+var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var ti_sysbios_family_arm_gic_Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');
+var InitXbar    = xdc.useModule("ti.sysbios.family.shared.vayu.IntXbar");
+
+/* 
+ * Program.argSize sets the size of the .args section. 
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x20000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module.  You
+ * can override these defaults on a per-module basis using Module.common$. 
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section.  Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+
+/*
+ * Minimize exit handler array in System.  The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;       
+
+/* 
+ * Uncomment this line to disable the Error print function.  
+ * We lose error information when this is disabled since the errors are
+ * not printed.  Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+
+/* 
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target.  These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits.  SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+SysMin.flushAtExit = false;
+ */
+
+/* Circular buffer size for System_printf() */
+SysMin.bufSize = 0x200;
+System.SupportProxy = SysMin;
+
+/* 
+ * Create and install logger for the whole system
+ */
+var loggerBufParams = new LoggerBuf.Params();
+loggerBufParams.numEntries = 16;
+var logger0 = LoggerBuf.create(loggerBufParams);
+Defaults.common$.logger = logger0;
+Main.common$.diags_INFO = Diags.ALWAYS_ON;
+
+
+if (Program.build.target.$name.match(/gnu/)) {
+    if (Program.build.target.$name.match(/A8F/) ||
+        Program.build.target.$name.match(/A9F/) ||
+        Program.build.target.$name.match(/A15F/)) {
+        var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+    }
+}
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+
+/*
+ * Build a custom SYS/BIOS library from sources.
+ */
+BIOS.libType = BIOS.LibType_Custom;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0x1000;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+/* ================ Task configuration ================ */
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am572x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+/* Load the UART package */
+var UART = xdc.loadPackage('ti.drv.uart');    
+
+/* Load the Board package and set the board name */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM572x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache1  = xdc.useModule('ti.sysbios.family.arm.a15.Cache');
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a15.Mmu');
+
+/* Enable the cache */
+Cache1.enableCache = true;
+
+/* Enable the MMU (Required for L1 data caching) */
+Mmu.enableMMU = true;
+
+var attrs = new Mmu.DescriptorAttrs();
+Mmu.initDescAttrsMeta(attrs);
+attrs.type = Mmu.DescriptorType_BLOCK;
+attrs.noExecute = true;
+attrs.accPerm = 0;       // R/W at PL1
+attrs.attrIndx = 4;       // Use MAIR0 Byte2
+Mmu.setMAIRMeta(4, 0x04);
+Mmu.setSecondLevelDescMeta(0x43200000, 0x43200000, attrs);
+
+/* Set IO Delay configuration areas as non-cache */
+attrs.attrIndx = 1;
+Mmu.setSecondLevelDescMeta(0x4844a000, 0x4844a000, attrs);
+Mmu.setSecondLevelDescMeta(0x4ae07d00, 0x4ae07d00, attrs);
+
+
+/* ================ Memory sections configuration ================ */
+Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
+Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_evmAM572x_c66xExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_evmAM572x_c66xExampleProject.txt
new file mode 100644 (file)
index 0000000..f93ce5e
--- /dev/null
@@ -0,0 +1,6 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_evmAM52x.cfg" 
+-ccs.setCompilerOptions "-D -mv6600 -g -dSOC_AM572x -devmAM572x -dUSE_BIOS -dC66X --diag_warning=225 --diag_warning=994 --diag_warning=262 --diag_suppress=1111 --diag_suppress=827  --diag_suppress=824  --diag_suppress=837  --diag_suppress=1037 --diag_suppress=195 --diag_suppress=77  --diag_suppress=232 -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_idkAM572x_c66xExampleProject.txt b/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/I2C_BasicExample_idkAM572x_c66xExampleProject.txt
new file mode 100644 (file)
index 0000000..1fac624
--- /dev/null
@@ -0,0 +1,6 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/main_eeprom_read.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/src/I2C_log.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/soc/am572x/UART_soc.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_idkAM52x.cfg" 
+-ccs.setCompilerOptions "-D -mv6600 -g -dSOC_AM572x -didkAM572x -dUSE_BIOS -dC66X --diag_warning=225 --diag_warning=994 --diag_warning=262 --diag_suppress=1111 --diag_suppress=827  --diag_suppress=824  --diag_suppress=837  --diag_suppress=1037 --diag_suppress=195 --diag_suppress=77  --diag_suppress=232 -I${PDK_INSTALL_PATH}/ti/drv/i2c "  -rtsc.enableRtsc
+
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_evmAM52x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_evmAM52x.cfg
new file mode 100644 (file)
index 0000000..f4d4771
--- /dev/null
@@ -0,0 +1,119 @@
+/**
+ *  \file   i2c_test_evmAM52x.cfg
+ *
+ *  \brief  Sysbios config file for i2c C66X test project on AM572X GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Memory                      =   xdc.useModule('xdc.runtime.Memory');
+var HeapMem                     =   xdc.useModule('ti.sysbios.heaps.HeapMem');
+var HeapBuf                     =   xdc.useModule('ti.sysbios.heaps.HeapBuf');
+var Log                         =   xdc.useModule('xdc.runtime.Log');
+var Task                        =   xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore                   =   xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi                         = xdc.useModule('ti.sysbios.family.c64p.Hwi');
+var ECM                         =   xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
+var System                      =   xdc.useModule('xdc.runtime.System');
+SysStd                          =   xdc.useModule('xdc.runtime.SysStd');
+System.SupportProxy             =   SysStd;
+
+/* Create a default system heap using ti.bios.HeapMem. */
+var heapMemParams1              =   new HeapMem.Params;
+heapMemParams1.size             =   8192 * 25;
+heapMemParams1.sectionName      =   "systemHeap";
+Program.global.heap0            =   HeapMem.create(heapMemParams1);
+
+/* This is the default memory heap. */
+Memory.defaultHeapInstance      =   Program.global.heap0;
+Program.sectMap["systemHeap"]   =   Program.platform.stackMemory;
+
+/*
+ * Enable Event Groups here and registering of ISR for specific GEM INTC is done
+ * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
+ */
+var exception          =       xdc.useModule('ti.sysbios.family.c64p.Exception');
+exception.enablePrint = true;
+
+
+/* ================ BIOS configuration ================ */
+var BIOS                        =   xdc.useModule('ti.sysbios.BIOS');
+
+/* Enable BIOS Task Scheduler */
+BIOS.taskEnabled                       =   true;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType           = "am572x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the i2c package */
+var I2C               = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType  = socType;
+
+
+/* Load the UART package */
+var UART = xdc.loadPackage('ti.drv.uart');    
+
+/* Load the Board package and set the board name */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM572x";
+
+/* ================ Memory sections configuration ================ */
+Program.sectMap[".text"] = "EXT_RAM";
+Program.sectMap[".const"] = "EXT_RAM";
+Program.sectMap[".plt"] = "EXT_RAM";
+Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
+Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";
diff --git a/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_idkAM52x.cfg b/packages/ti/drv/i2c/example/eeprom_read/am572x/c66/bios/i2c_test_idkAM52x.cfg
new file mode 100644 (file)
index 0000000..f1c78f4
--- /dev/null
@@ -0,0 +1,119 @@
+/**
+ *  \file   i2c_test_idkAM52x.cfg
+ *
+ *  \brief  Sysbios config file for i2c C66X test project on AM572X IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* ================ General configuration ================ */
+var Memory                      =   xdc.useModule('xdc.runtime.Memory');
+var HeapMem                     =   xdc.useModule('ti.sysbios.heaps.HeapMem');
+var HeapBuf                     =   xdc.useModule('ti.sysbios.heaps.HeapBuf');
+var Log                         =   xdc.useModule('xdc.runtime.Log');
+var Task                        =   xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore                   =   xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi                         = xdc.useModule('ti.sysbios.family.c64p.Hwi');
+var ECM                         =   xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
+var System                      =   xdc.useModule('xdc.runtime.System');
+SysStd                          =   xdc.useModule('xdc.runtime.SysStd');
+System.SupportProxy             =   SysStd;
+
+/* Create a default system heap using ti.bios.HeapMem. */
+var heapMemParams1              =   new HeapMem.Params;
+heapMemParams1.size             =   8192 * 25;
+heapMemParams1.sectionName      =   "systemHeap";
+Program.global.heap0            =   HeapMem.create(heapMemParams1);
+
+/* This is the default memory heap. */
+Memory.defaultHeapInstance      =   Program.global.heap0;
+Program.sectMap["systemHeap"]   =   Program.platform.stackMemory;
+
+/*
+ * Enable Event Groups here and registering of ISR for specific GEM INTC is done
+ * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
+ */
+var exception          =       xdc.useModule('ti.sysbios.family.c64p.Exception');
+exception.enablePrint = true;
+
+
+/* ================ BIOS configuration ================ */
+var BIOS                        =   xdc.useModule('ti.sysbios.BIOS');
+
+/* Enable BIOS Task Scheduler */
+BIOS.taskEnabled                       =   true;
+
+/* ================ Task configuration ================ */
+
+/* No runtime stack checking is performed */
+Task.checkStackFlag = false;
+
+/* Reduce the number of task priorities */
+Task.numPriorities = 4;
+
+var task0Params = new Task.Params();
+task0Params.instance.name = "echo";
+task0Params.stackSize = 0x1000;
+Program.global.echo = Task.create("&i2c_test", task0Params);
+
+/* ================ Driver configuration ================ */
+
+/* Load the Osal package */
+var osType           = "tirtos";
+var Osal             = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;