
This series brings in an I2C driver for Tegra which can be configured by a flat device tree.
It supports 8- and 16-bit addresses and both the normal I2C ports and the DVC port (for controlling the power management unit (PMU)).
Recent Linux bindings are used, based on example .dts files found in branch for-3.3/dt at:
git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git
(I could not find the actual binding documentation to include here)
Changes in v2: - Adjust definitions to fit new peripheral clock bindings - Change 'speed' to 'clock-frequency' - Remove u-boot,pinmux binding (sadly) - Use DIV_ROUND_UP() instead of a home-grown macro - Tidy comment style - Change i2c array to static - Remove i2c configuring using CONFIG (use fdt instead) - Make i2c/dvc decision come from fdt - Use new fdtdec alias decode function - Simplify code in i2c_addr_ok() - Return an error if an unavailable i2c bus is selected - Add build warning if CONFIG_SYS_I2C_INIT_BOARD is not defined - Disable port 2 as it is not used
Simon Glass (6): tegra: Rename NV_PA_PMC_BASE to TEGRA2_PMC_BASE fdt: Add function to allow aliases to refer to multiple nodes tegra: fdt: Add extra I2C bindings for U-Boot tegra: Initialise I2C on Nvidia boards tegra: Select I2C ordering for Seaboard tegra: Enable I2C on Seaboard
Yen Lin (1): tegra: Add I2C driver
arch/arm/cpu/armv7/tegra2/ap20.c | 10 +- arch/arm/cpu/armv7/tegra2/board.c | 2 +- arch/arm/dts/tegra20.dtsi | 10 +- arch/arm/include/asm/arch-tegra2/tegra2.h | 4 +- arch/arm/include/asm/arch-tegra2/tegra2_i2c.h | 160 +++++++ board/nvidia/common/board.c | 7 + board/nvidia/dts/tegra2-seaboard.dts | 10 + drivers/i2c/Makefile | 1 + drivers/i2c/tegra2_i2c.c | 551 +++++++++++++++++++++++++ include/configs/seaboard.h | 8 + include/fdtdec.h | 17 + lib/fdtdec.c | 18 +- 12 files changed, 785 insertions(+), 13 deletions(-) create mode 100644 arch/arm/include/asm/arch-tegra2/tegra2_i2c.h create mode 100644 drivers/i2c/tegra2_i2c.c