[U-Boot] [PATCH v3 0/9] tegra: Add I2C driver and associated parts
Heiko Schocher
hs at denx.de
Thu Feb 9 08:02:13 CET 2012
Hello Tom,
Simon Glass wrote:
> 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)
>
> Note: There is still an open question on I2C2 pinmux. The idea of an
> 'nvidia,pinmux-config' settings did not find favour, so we have no way
> of passing the correct config to funcmux for this port. Therefore we have
> disabled it for now. The impact on Seaboard is that the TPM and battery
> charger cannot be accessed.
>
> I am sending this series to the linux-tegra list also, and will do so for
> future series also. This is because anything to do with fdt also affects
> the kernel bindings. Please advise if this is not useful.
>
> Changes in v2:
> - Add build warning if CONFIG_SYS_I2C_INIT_BOARD is not defined
> - Adjust definitions to fit new peripheral clock bindings
> - Change 'speed' to 'clock-frequency'
> - Change i2c array to static
> - Disable port 2 as it is not used
> - Make i2c/dvc decision come from fdt
> - Remove i2c configuring using CONFIG (use fdt instead)
> - Remove u-boot,pinmux binding (sadly)
> - Return an error if an unavailable i2c bus is selected
> - Simplify code in i2c_addr_ok()
> - Tidy comment style
> - Use DIV_ROUND_UP() instead of a home-grown macro
> - Use new fdtdec alias decode function
>
> Changes in v3:
> - Add TEGRA_I2C_NUM_CONTROLLERS to select number of I2C ports
> - Add comment on how to select pinmux for I2C2
> - Add comments and warning for mixed alias use in fdtdec
> - Add new patch to support 16-bit clock divisors required by I2C
> - Change i2c_init() to reset speed and override the fdt setting
> - Fix i2c_addr_ok() function to check addresses correctly
> - Move speed setting from tegra20.dtsi to board .dts file
> - Rename driver to tegra_i2c since it will later be shared with Tegra3
> - Tidy up I2C speed selection to use the peripheral clock
> - Use CONFIG_TEGRA_I2C instead of CONFIG_TEGRA2_I2C
>
> Simon Glass (8):
> tegra: Rename NV_PA_PMC_BASE to TEGRA2_PMC_BASE
> fdt: Add function to allow aliases to refer to multiple nodes
> tegra: Enhance clock support to handle 16-bit clock divisors
> tegra: fdt: i2c: Add extra I2C bindings for U-Boot
> tegra: i2c: Initialise I2C on Nvidia boards
> tegra: i2c: Select I2C ordering for Seaboard
> tegra: i2c: Select number of controllers for Tegra2 boards
> tegra: i2c: Enable I2C on Seaboard
>
> Yen Lin (1):
> tegra: i2c: Add I2C driver
>
> arch/arm/cpu/armv7/tegra2/ap20.c | 10 +-
> arch/arm/cpu/armv7/tegra2/board.c | 2 +-
> arch/arm/cpu/armv7/tegra2/clock.c | 63 ++-
> arch/arm/dts/tegra20.dtsi | 6 +-
> arch/arm/include/asm/arch-tegra2/clk_rst.h | 10 +-
> arch/arm/include/asm/arch-tegra2/tegra2.h | 4 +-
> arch/arm/include/asm/arch-tegra2/tegra_i2c.h | 160 ++++++++
> board/nvidia/common/board.c | 7 +
> board/nvidia/dts/tegra2-seaboard.dts | 21 +
> drivers/i2c/Makefile | 1 +
> drivers/i2c/tegra_i2c.c | 566 ++++++++++++++++++++++++++
> include/configs/seaboard.h | 8 +
> include/configs/tegra2-common.h | 3 +
> include/fdtdec.h | 25 ++
> lib/fdtdec.c | 24 +-
> 15 files changed, 873 insertions(+), 37 deletions(-)
> create mode 100644 arch/arm/include/asm/arch-tegra2/tegra_i2c.h
> create mode 100644 drivers/i2c/tegra_i2c.c
Do you want to pick up this patchserie? So I can send my Ack for it.
If I should pick it up, please send your Acked-by, thanks!
bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list