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);

Reply via email to