Module Name: src Committed By: jmcneill Date: Sun May 31 14:41:59 UTC 2015
Modified Files: src/sys/arch/arm/nvidia: tegra_i2c.c tegra_var.h Log Message: add external function for writing to dvc (I2C5) devices To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_i2c.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/nvidia/tegra_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/nvidia/tegra_i2c.c diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.4 src/sys/arch/arm/nvidia/tegra_i2c.c:1.5 --- src/sys/arch/arm/nvidia/tegra_i2c.c:1.4 Sun May 17 01:26:22 2015 +++ src/sys/arch/arm/nvidia/tegra_i2c.c Sun May 31 14:41:59 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_i2c.c,v 1.4 2015/05/17 01:26:22 jmcneill Exp $ */ +/* $NetBSD: tegra_i2c.c,v 1.5 2015/05/31 14:41:59 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -29,7 +29,7 @@ #include "locators.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.4 2015/05/17 01:26:22 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.5 2015/05/31 14:41:59 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -418,3 +418,20 @@ tegra_i2c_read(struct tegra_i2c_softc *s return tegra_i2c_wait(sc, flags); } + +void +tegra_i2c_dvc_write(uint8_t addr, uint32_t data, size_t datalen) +{ + bus_space_tag_t bst = &armv7_generic_bs_tag; + bus_space_handle_t bsh; + + bus_space_subregion(bst, tegra_apb_bsh, TEGRA_I2C5_OFFSET, + TEGRA_I2C5_SIZE, &bsh); + + bus_space_write_4(bst, bsh, I2C_CMD_ADDR0_REG, addr << 1); + bus_space_write_4(bst, bsh, I2C_CMD_DATA1_REG, data); + bus_space_write_4(bst, bsh, I2C_CNFG_REG, + __SHIFTIN(datalen - 1, I2C_CNFG_LENGTH) | + I2C_CNFG_NEW_MASTER_FSM | + I2C_CNFG_SEND); +} Index: src/sys/arch/arm/nvidia/tegra_var.h diff -u src/sys/arch/arm/nvidia/tegra_var.h:1.20 src/sys/arch/arm/nvidia/tegra_var.h:1.21 --- src/sys/arch/arm/nvidia/tegra_var.h:1.20 Sat May 30 13:25:55 2015 +++ src/sys/arch/arm/nvidia/tegra_var.h Sun May 31 14:41:59 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_var.h,v 1.20 2015/05/30 13:25:55 jmcneill Exp $ */ +/* $NetBSD: tegra_var.h,v 1.21 2015/05/31 14:41:59 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -140,6 +140,8 @@ void tegra_pmc_power(u_int, bool); void tegra_pmc_remove_clamping(u_int); void tegra_pmc_hdmi_enable(void); +void tegra_i2c_dvc_write(uint8_t, uint32_t, size_t); + psize_t tegra_mc_memsize(void); void tegra_xusbpad_sata_enable(void);