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 <[email protected]>
@@ -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 <[email protected]>
@@ -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);