socsvn commit: r240179 - in soc2012/aleek/beaglexm-armv6/sys:
arm/ti arm/ti/twl boot/fdt/dts
aleek at FreeBSD.org
aleek at FreeBSD.org
Tue Aug 7 20:16:57 UTC 2012
Author: aleek
Date: Tue Aug 7 20:16:54 2012
New Revision: 240179
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=240179
Log:
fixed twl driver issues. Now, TWL seems to work fine
Modified:
soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c
soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.h
soc2012/aleek/beaglexm-armv6/sys/arm/ti/twl/twl_vreg.c
soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts
Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c
==============================================================================
--- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c Tue Aug 7 19:26:23 2012 (r240178)
+++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.c Tue Aug 7 20:16:54 2012 (r240179)
@@ -180,6 +180,7 @@
static inline uint16_t
ti_i2c_read_2(struct ti_i2c_softc *sc, bus_size_t off)
{
+ //device_printf( sc->sc_dev, "%s offset 0x%02lx\n", __FUNCTION__, off );
return bus_read_2(sc->sc_mem_res, off);
}
@@ -198,6 +199,7 @@
static inline void
ti_i2c_write_2(struct ti_i2c_softc *sc, bus_size_t off, uint16_t val)
{
+ //device_printf( sc->sc_dev, "%s offset 0x%02lx\n", __FUNCTION__, off );
bus_write_2(sc->sc_mem_res, off, val);
}
@@ -218,6 +220,7 @@
ti_i2c_read_reg(struct ti_i2c_softc *sc, bus_size_t off)
{
/* XXXOMAP3: FIXME add registers mapping here */
+ //device_printf( sc->sc_dev, "%s offset 0x%02lx\n", __FUNCTION__, off );
return bus_read_2(sc->sc_mem_res, off);
}
@@ -237,6 +240,7 @@
static inline void
ti_i2c_write_reg(struct ti_i2c_softc *sc, bus_size_t off, uint16_t val)
{
+ //device_printf( sc->sc_dev, "%s offset 0x%02lx\n", __FUNCTION__, off );
/* XXXOMAP3: FIXME add registers mapping here */
bus_write_2(sc->sc_mem_res, off, val);
}
@@ -260,9 +264,12 @@
ti_i2c_set_intr_enable(struct ti_i2c_softc *sc, uint16_t ie)
{
/* XXXOMAP3: FIXME */
+ ti_i2c_write_2(sc, I2C_REG_IE, ie);
+ /*
ti_i2c_write_2(sc, I2C_REG_IRQENABLE_CLR, 0xffff);
if (ie)
ti_i2c_write_2(sc, I2C_REG_IRQENABLE_SET, ie);
+ */
}
/**
@@ -1082,7 +1089,8 @@
/* XXXOMAP3: FIXME get proper revision here */
/* First read the version number of the I2C module */
- sc->sc_rev = ti_i2c_read_2(sc, I2C_REG_REVNB_HI) & 0xff;
+ //@todo aleek fix this change cause dmarion will be pissed ;)
+ sc->sc_rev = ti_i2c_read_2(sc, I2C_REG_REVNB_LO) & 0xff;
device_printf(dev, "I2C revision %d.%d\n", sc->sc_rev >> 4,
sc->sc_rev & 0xf);
Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.h
==============================================================================
--- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.h Tue Aug 7 19:26:23 2012 (r240178)
+++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_i2c.h Tue Aug 7 20:16:54 2012 (r240179)
@@ -34,7 +34,7 @@
* Simply contains register bit flags.
*/
-#if defined(SOC_TI_AM37X) || defined(SOC_OMAP4)
+#if defined(SOC_TI_AM335X) || defined(SOC_OMAP4)
/*
* OMAP4 I2C Registers, Summary 1
@@ -114,8 +114,8 @@
#elif defined( SOC_TI_AM37X ) || defined( SOC_OMAP3 )
-#define I2C_REV 0x00
-#define I2C_IE 0x04
+#define I2C_REG_REV 0x00
+#define I2C_REG_IE 0x04
#define I2C_IE_XDR (1UL << 14) /* Transmit draining interrupt */
#define I2C_IE_RDR (1UL << 13) /* Receive draining interrupt */
#define I2C_IE_AAS (1UL << 9) /* Addressed as Slave interrupt */
@@ -128,7 +128,7 @@
#define I2C_IE_ARDY (1UL << 2) /* Register Access Ready interrupt */
#define I2C_IE_NACK (1UL << 1) /* No Acknowledgment interrupt */
#define I2C_IE_AL (1UL << 0) /* Arbitration Lost interrupt */
-#define I2C_STAT 0x08
+#define I2C_REG_STAT 0x08
#define I2C_STAT_XDR (1UL << 14)
#define I2C_STAT_RDR (1UL << 13)
#define I2C_STAT_BB (1UL << 12)
@@ -144,11 +144,11 @@
#define I2C_STAT_ARDY (1UL << 2)
#define I2C_STAT_NACK (1UL << 1)
#define I2C_STAT_AL (1UL << 0)
-#define I2C_SYSS 0x10
-#define I2C_BUF 0x14
-#define I2C_CNT 0x18
-#define I2C_DATA 0x1C
-#define I2C_CON 0x24
+#define I2C_REG_SYSS 0x10
+#define I2C_REG_BUF 0x14
+#define I2C_REG_CNT 0x18
+#define I2C_REG_DATA 0x1C
+#define I2C_REG_CON 0x24
#define I2C_CON_I2C_EN (1UL << 15)
#define I2C_CON_OPMODE_STD (0UL << 12)
#define I2C_CON_OPMODE_HS (1UL << 12)
@@ -165,21 +165,22 @@
#define I2C_CON_STP (1UL << 1)
#define I2C_CON_STT (1UL << 0)
-#define I2C_OA0 0x28
-#define I2C_SA 0x2C
-#define I2C_PSC 0x30
-#define I2C_SCLL 0x34
-#define I2C_SCLH 0x38
-#define I2C_SYSTEST 0x3C
-#define I2C_BUFSTAT 0x40
-#define I2C_OA1 0x44
-#define I2C_OA2 0x48
-#define I2C_OA3 0x4C
-#define I2C_ACTOA 0x50
-#define I2C_SBLOCK 0x54
+#define I2C_REG_OA0 0x28
+#define I2C_REG_SA 0x2C
+#define I2C_REG_PSC 0x30
+#define I2C_REG_SCLL 0x34
+#define I2C_REG_SCLH 0x38
+#define I2C_REG_SYSTEST 0x3C
+#define I2C_REG_BUFSTAT 0x40
+#define I2C_REG_OA1 0x44
+#define I2C_REG_OA2 0x48
+#define I2C_REG_OA3 0x4C
+#define I2C_REG_ACTOA 0x50
+#define I2C_REG_SBLOCK 0x54
-#define I2C_OMAP3_SYSC 0x20
-#define I2C_OMAP4_SYSC 0x10
+#define I2C_REG_SYSC 0x20
+#define I2C_REG_REVNB_LO 0x00
+#define I2C_REG_REVNB_HI 0x04
#endif
Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/twl/twl_vreg.c
==============================================================================
--- soc2012/aleek/beaglexm-armv6/sys/arm/ti/twl/twl_vreg.c Tue Aug 7 19:26:23 2012 (r240178)
+++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/twl/twl_vreg.c Tue Aug 7 20:16:54 2012 (r240179)
@@ -558,6 +558,7 @@
int err;
uint8_t vsel;
int xlocked;
+ device_printf( sc->sc_dev, "%s\n", __FUNCTION__ );
TWL_VREG_ASSERT_LOCKED(sc);
@@ -626,6 +627,7 @@
int en = 0;
int xlocked;
uint8_t vsel;
+ device_printf( sc->sc_dev, "%s\n", __FUNCTION__ );
TWL_VREG_ASSERT_LOCKED(sc);
@@ -829,12 +831,14 @@
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev);
struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev);
struct twl_regulator_entry *new;
+ device_printf( sc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ );
new = malloc(sizeof(struct twl_regulator_entry), M_DEVBUF, M_NOWAIT | M_ZERO);
if (new == NULL)
return (NULL);
+ device_printf( sc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ );
strncpy(new->name, name, TWL_VREG_MAX_NAMELEN);
new->name[TWL_VREG_MAX_NAMELEN - 1] = '\0';
@@ -847,6 +851,7 @@
new->num_supp_voltages = num_voltages;
+ device_printf( sc->sc_dev, "%s:%d\n", __FUNCTION__, __LINE__ );
/* Add a sysctl entry for the voltage */
new->oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, name,
CTLTYPE_INT | CTLFLAG_RD, sc, 0,
Modified: soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts
==============================================================================
--- soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Tue Aug 7 19:26:23 2012 (r240178)
+++ soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Tue Aug 7 20:16:54 2012 (r240179)
@@ -186,7 +186,6 @@
mmchs-device-id = <1>;
};
-
i2c1: i2c at 48070000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -195,9 +194,9 @@
interrupts = <56>;
interrupt-parent = <&AINTC>;
i2c-device-id = <1>;
- pmic at 24 {
+ pmic at 48 {
compatible = "ti,twl4030";
- reg = <0x24>;
+ reg = <0x48>;
};
};
More information about the svn-soc-all
mailing list