From: Tom <Tom.Rix@windriver.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/4] add TI DA8xx support: Add new directory for da8xx architecture includes
Date: Sat, 24 Oct 2009 17:59:35 -0500 [thread overview]
Message-ID: <4AE386D7.9090406@windriver.com> (raw)
In-Reply-To: <4AE186B0.3080304@gefanuc.com>
Nick Thompson wrote:
> Add new directory for da8xx architecture includes.
>
> Provides initial support for TI OMAP-L1x/DA8xx SoC devices.
> See http://www.ti.com
>
> The DA8xx devices are similar to DaVinci devices but have a differing
> memory map and updated peripheral versions.
>
> Signed-off-by: Nick Thompson <nick.thompson@gefanuc.com>
> ---
> Applies to u-boot-ti
>
> include/asm-arm/arch-da8xx/clock.h | 25 ++++
> include/asm-arm/arch-da8xx/emif_defs.h | 71 ++++++++++
> include/asm-arm/arch-da8xx/hardware.h | 221 ++++++++++++++++++++++++++++++++
> include/asm-arm/arch-da8xx/i2c_defs.h | 93 +++++++++++++
> 4 files changed, 410 insertions(+), 0 deletions(-)
>
> diff --git a/include/asm-arm/arch-da8xx/clock.h b/include/asm-arm/arch-da8xx/clock.h
> new file mode 100644
> index 0000000..8cb4f51
> --- /dev/null
> +++ b/include/asm-arm/arch-da8xx/clock.h
> @@ -0,0 +1,25 @@
> +/*
> + * Copyright (C) 2009 Nick Thompson, GE Fanuc, Ltd. <nick.thompson@gefanuc.com>
+ *
> + * DA8xx clock include header
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> + * ----------------------------------------------------------------------------
> + */
> +
> +/* Included from hardware.h so protect from assembler inclusion */
> +#ifndef __ASSEMBLY__
> +int clk_get(unsigned int id);
> +#endif
> diff --git a/include/asm-arm/arch-da8xx/emif_defs.h b/include/asm-arm/arch-da8xx/emif_defs.h
This is exactly the same as davinci
> new file mode 100644
> index 0000000..c91e30c
> --- /dev/null
> +++ b/include/asm-arm/arch-da8xx/emif_defs.h
> @@ -0,0 +1,71 @@
> +/*
> + * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +#ifndef _EMIF_DEFS_H_
> +#define _EMIF_DEFS_H_
> +
> +#include <asm/arch/hardware.h>
> +
> +typedef struct {
> + dv_reg ERCSR;
dv_reg is hiding that this is volatile pointer.
> + dv_reg AWCCR;
> + dv_reg SDBCR;
> + dv_reg SDRCR;
> + dv_reg AB1CR;
> + dv_reg AB2CR;
> + dv_reg AB3CR;
> + dv_reg AB4CR;
> + dv_reg SDTIMR;
> + dv_reg DDRSR;
> + dv_reg DDRPHYCR;
> + dv_reg DDRPHYSR;
> + dv_reg TOTAR;
> + dv_reg TOTACTR;
> + dv_reg DDRPHYID_REV;
> + dv_reg SDSRETR;
> + dv_reg EIRR;
> + dv_reg EIMR;
> + dv_reg EIMSR;
> + dv_reg EIMCR;
> + dv_reg IOCTRLR;
> + dv_reg IOSTATR;
> + u_int8_t RSVD0[8];
> + dv_reg NANDFCR;
> + dv_reg NANDFSR;
> + u_int8_t RSVD1[8];
> + dv_reg NANDF1ECC;
> + dv_reg NANDF2ECC;
> + dv_reg NANDF3ECC;
> + dv_reg NANDF4ECC;
> + u_int8_t RSVD2[60];
> + dv_reg NAND4BITECCLOAD;
> + dv_reg NAND4BITECC1;
> + dv_reg NAND4BITECC2;
> + dv_reg NAND4BITECC3;
> + dv_reg NAND4BITECC4;
> + dv_reg NANDERRADD1;
> + dv_reg NANDERRADD2;
> + dv_reg NANDERRVAL1;
> + dv_reg NANDERRVAL2;
> +} emif_registers;
> +
> +typedef emif_registers *emifregs;
> +#endif
> diff --git a/include/asm-arm/arch-da8xx/hardware.h b/include/asm-arm/arch-da8xx/hardware.h
> new file mode 100644
> index 0000000..7cfe8d2
> --- /dev/null
> +++ b/include/asm-arm/arch-da8xx/hardware.h
> @@ -0,0 +1,221 @@
> +/*
I believe this could be combined with davinci.
There is already logic in davinci hardware.h
to handle SOC specific memory maps.
> + * Copyright (C) 2008 Sekhar Nori, Texas Instruments, Inc
> + *
> + * Based on hardware.h for DaVinci. Original Copyrights follow.
> + *
> + * Sergey Kubushyn <ksi@koi8.net>
> + * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
> + *
> + * Based on:
> + *
> + * -------------------------------------------------------------------------
> + *
> + * linux/include/asm-arm/arch-davinci/hardware.h
> + *
> + * Copyright (C) 2006 Texas Instruments.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2 of the License, or (at your
> + * option) any later version.
> + *
> + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
> + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
> + * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
> + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, write to the Free Software Foundation, Inc.,
> + * 675 Mass Ave, Cambridge, MA 02139, USA.
> + *
> + */
> +#ifndef __DA8XX_HARDWARE_H
> +#define __DA8XX_HARDWARE_H
> +
> +#include <config.h>
> +
> +#ifndef __ASSEMBLY__
> +
> +#include <asm/sizes.h>
> +
> +/* required by davinci drivers */
> +#define REG(addr) (*(volatile unsigned int *)(addr))
Thank you for the comment.
Yes it is..
The direct access should be cleaned up to writel/readl.
You get a pass on this.
> +
> +/* required by davinci drivers */
> +typedef volatile unsigned int dv_reg;
> +typedef volatile unsigned int *dv_reg_p;
> +
> +#endif
> +
> +/*
> + * Base register addresses
> + */
> +#define DAVINCI_UART0_BASE 0x01c42000
> +#define DAVINCI_UART1_BASE 0x01d0c000
> +#define DAVINCI_UART2_BASE 0x01d0d000
> +#define DAVINCI_I2C0_BASE 0x01c22000
> +#define DAVINCI_I2C1_BASE 0x01e28000
> +#define DAVINCI_TIMER0_BASE 0x01c20000
> +#define DAVINCI_TIMER1_BASE 0x01c21000
> +#define DAVINCI_WDOG_BASE 0x01c21000
> +#define DAVINCI_PLL_CNTRL0_BASE 0x01c11000
> +#define DAVINCI_PSC0_BASE 0x01c10000
> +#define DAVINCI_PSC1_BASE 0x01e27000
> +#define DAVINCI_SPI0_BASE 0x01c41000
> +#define DAVINCI_USB_OTG_BASE 0x01e00000
> +#define DAVINCI_SPI1_BASE 0x01e12000
> +#define DAVINCI_GPIO_BASE 0x01e26000
> +#define DAVINCI_EMAC_CNTRL_REGS_BASE 0x01e23000
> +#define DAVINCI_EMAC_WRAPPER_CNTRL_REGS_BASE 0x01e22000
> +#define DAVINCI_EMAC_WRAPPER_RAM_BASE 0x01e20000
> +#define DAVINCI_MDIO_CNTRL_REGS_BASE 0x01e24000
> +#define DAVINCI_ASYNC_EMIF_CNTRL_BASE 0x68000000
> +#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x40000000
> +#define DAVINCI_ASYNC_EMIF_DATA_CE2_BASE 0x60000000
> +#define DAVINCI_ASYNC_EMIF_DATA_CE3_BASE 0x62000000
> +#define DAVINCI_ASYNC_EMIF_DATA_CE4_BASE 0x64000000
> +#define DAVINCI_ASYNC_EMIF_DATA_CE5_BASE 0x66000000
> +#define DAVINCI_DDR_EMIF_CTRL_BASE 0xb0000000
> +#define DAVINCI_DDR_EMIF_DATA_BASE 0xc0000000
> +#define DAVINCI_INTC_BASE 0xfffee000
> +#define DAVINCI_BOOTCFG_BASE 0x01c14000
> +
> +/* Clock IDs */
> +#define DAVINCI_PLLM_CLKID (0xFF + 0)
> +#define DAVINCI_PLLC_CLKID (0xFF + 1)
> +#define DAVINCI_AUXCLK_CLKID (0xFF + 2)
> +#define DAVINCI_MDIO_CLKID 4
> +#define DAVINCI_SPI0_CLKID 2
> +#define DAVINCI_UART2_CLKID 2
> +#define DAVINCI_ARM_CLKID 6
> +
> +/* Power and Sleep Controller (PSC) Domains */
> +#define DAVINCI_GPSC_ARMDOMAIN 0
> +#define DAVINCI_GPSC_DSPDOMAIN 1
> +
> +/* LPSCs in PSC0 */
> +#define DAVINCI_LPSC_TPCC 0
> +#define DAVINCI_LPSC_TPTC0 1
> +#define DAVINCI_LPSC_TPTC1 2
> +#define DAVINCI_LPSC_AEMIF 3
> +#define DAVINCI_LPSC_SPI0 4
> +#define DAVINCI_LPSC_MMC_SD 5
> +#define DAVINCI_LPSC_AINTC 6
> +#define DAVINCI_LPSC_ARM_RAM_ROM 7
> +#define DAVINCI_LPSC_SECCTL_KEYMGR 8
> +#define DAVINCI_LPSC_UART0 9
> +#define DAVINCI_LPSC_SCR0 10
> +#define DAVINCI_LPSC_SCR1 11
> +#define DAVINCI_LPSC_SCR2 12
> +#define DAVINCI_LPSC_DMAX 13
> +#define DAVINCI_LPSC_ARM 14
> +#define DAVINCI_LPSC_GEM 15
> +
> +/* for LPSCs in PSC1, 32 + actual id is being used for differentiation */
> +#define DAVINCI_LPSC_BASE 32
> +#define DAVINCI_LPSC_USB11 (DAVINCI_LPSC_BASE + 1)
> +#define DAVINCI_LPSC_USB20 (DAVINCI_LPSC_BASE + 2)
> +#define DAVINCI_LPSC_GPIO (DAVINCI_LPSC_BASE + 3)
> +#define DAVINCI_LPSC_UHPI (DAVINCI_LPSC_BASE + 4)
> +#define DAVINCI_LPSC_EMAC (DAVINCI_LPSC_BASE + 5)
> +#define DAVINCI_LPSC_DDR_EMIF (DAVINCI_LPSC_BASE + 6)
> +#define DAVINCI_LPSC_McASP0 (DAVINCI_LPSC_BASE + 7)
> +#define DAVINCI_LPSC_McASP1 (DAVINCI_LPSC_BASE + 8)
> +#define DAVINCI_LPSC_McASP2 (DAVINCI_LPSC_BASE + 9)
> +#define DAVINCI_LPSC_SPI1 (DAVINCI_LPSC_BASE + 10)
> +#define DAVINCI_LPSC_I2C1 (DAVINCI_LPSC_BASE + 11)
> +#define DAVINCI_LPSC_UART1 (DAVINCI_LPSC_BASE + 12)
> +#define DAVINCI_LPSC_UART2 (DAVINCI_LPSC_BASE + 13)
> +#define DAVINCI_LPSC_LCDC (DAVINCI_LPSC_BASE + 16)
> +#define DAVINCI_LPSC_ePWM (DAVINCI_LPSC_BASE + 17)
> +#define DAVINCI_LPSC_eCAP (DAVINCI_LPSC_BASE + 20)
> +#define DAVINCI_LPSC_eQEP (DAVINCI_LPSC_BASE + 21)
> +#define DAVINCI_LPSC_SCR_P0 (DAVINCI_LPSC_BASE + 22)
> +#define DAVINCI_LPSC_SCR_P1 (DAVINCI_LPSC_BASE + 23)
> +#define DAVINCI_LPSC_CR_P3 (DAVINCI_LPSC_BASE + 26)
> +#define DAVINCI_LPSC_L3_CBA_RAM (DAVINCI_LPSC_BASE + 31)
> +
> +/* Some PSC defines */
> +
> +#define PSC0_MDCTL (DAVINCI_PSC0_BASE + 0xa00)
> +#define PSC0_MDSTAT (DAVINCI_PSC0_BASE + 0x800)
> +#define PSC0_PTCMD (DAVINCI_PSC0_BASE + 0x120)
> +#define PSC0_PTSTAT (DAVINCI_PSC0_BASE + 0x128)
> +
> +#define PSC1_MDCTL (DAVINCI_PSC1_BASE + 0xa00)
> +#define PSC1_MDSTAT (DAVINCI_PSC1_BASE + 0x800)
> +#define PSC1_PTCMD (DAVINCI_PSC1_BASE + 0x120)
> +#define PSC1_PTSTAT (DAVINCI_PSC1_BASE + 0x128)
> +
> +/* Some PLL defines */
> +#define PLL0_PLLCTL (DAVINCI_PLL_CNTRL0_BASE + 0x100)
> +#define PLL0_PLLM (DAVINCI_PLL_CNTRL0_BASE + 0x110)
> +#define PLL0_PREDIV (DAVINCI_PLL_CNTRL0_BASE + 0x114)
> +#define PLL0_POSTDIV (DAVINCI_PLL_CNTRL0_BASE + 0x128)
> +#define PLL0_DIV1 (DAVINCI_PLL_CNTRL0_BASE + 0x118)
> +#define PLL0_DIV2 (DAVINCI_PLL_CNTRL0_BASE + 0x11c)
> +#define PLL0_DIV3 (DAVINCI_PLL_CNTRL0_BASE + 0x120)
> +#define PLL0_DIV4 (DAVINCI_PLL_CNTRL0_BASE + 0x160)
> +#define PLL0_DIV5 (DAVINCI_PLL_CNTRL0_BASE + 0x164)
> +#define PLL0_DIV6 (DAVINCI_PLL_CNTRL0_BASE + 0x168)
> +#define PLL0_DIV7 (DAVINCI_PLL_CNTRL0_BASE + 0x16c)
> +#define PLL0_DIV8 (DAVINCI_PLL_CNTRL0_BASE + 0x170)
> +#define PLL0_DIV9 (DAVINCI_PLL_CNTRL0_BASE + 0x114)
> +
> +/* Boot config */
> +#define PINMUX0 (DAVINCI_BOOTCFG_BASE + 0x120)
> +#define PINMUX1 (DAVINCI_BOOTCFG_BASE + 0x124)
> +#define PINMUX2 (DAVINCI_BOOTCFG_BASE + 0x128)
> +#define PINMUX3 (DAVINCI_BOOTCFG_BASE + 0x12c)
> +#define PINMUX4 (DAVINCI_BOOTCFG_BASE + 0x130)
> +#define PINMUX5 (DAVINCI_BOOTCFG_BASE + 0x134)
> +#define PINMUX6 (DAVINCI_BOOTCFG_BASE + 0x138)
> +#define PINMUX7 (DAVINCI_BOOTCFG_BASE + 0x13c)
> +#define PINMUX8 (DAVINCI_BOOTCFG_BASE + 0x140)
> +#define PINMUX9 (DAVINCI_BOOTCFG_BASE + 0x144)
> +#define PINMUX10 (DAVINCI_BOOTCFG_BASE + 0x148)
> +#define PINMUX11 (DAVINCI_BOOTCFG_BASE + 0x14c)
> +#define PINMUX12 (DAVINCI_BOOTCFG_BASE + 0x150)
> +#define PINMUX13 (DAVINCI_BOOTCFG_BASE + 0x154)
> +#define PINMUX14 (DAVINCI_BOOTCFG_BASE + 0x158)
> +#define PINMUX15 (DAVINCI_BOOTCFG_BASE + 0x15C)
> +#define PINMUX16 (DAVINCI_BOOTCFG_BASE + 0x160)
> +#define PINMUX17 (DAVINCI_BOOTCFG_BASE + 0x164)
> +#define PINMUX18 (DAVINCI_BOOTCFG_BASE + 0x168)
> +#define PINMUX19 (DAVINCI_BOOTCFG_BASE + 0x16c)
> +#define SUSPSRC (DAVINCI_BOOTCFG_BASE + 0x170)
> +#define CFGCHIP0 (DAVINCI_BOOTCFG_BASE + 0x17c)
> +#define CFGCHIP2 (DAVINCI_BOOTCFG_BASE + 0x184)
> +
> +/* Interrupt controller */
> +#define INTC_GLB_EN (DAVINCI_INTC_BASE + 0x10)
> +#define INTC_HINT_EN (DAVINCI_INTC_BASE + 0x1500)
> +#define INTC_EN_CLR0 (DAVINCI_INTC_BASE + 0x380)
> +
> +/* GPIO */
> +#define GPIO_BANK4_ADDR 0x01E26000
> +#define GPIO_BANK4_REG_DIR_ADDR (GPIO_BANK4_ADDR + 0x60)
> +#define GPIO_BANK4_REG_OPDATA_ADDR (GPIO_BANK4_ADDR + 0x64)
> +#define GPIO_BANK4_REG_SET_ADDR (GPIO_BANK4_ADDR + 0x68)
> +#define GPIO_BANK4_REG_CLR_ADDR (GPIO_BANK4_ADDR + 0x6C)
> +
> +/* Emulation suspend bits */
> +#define SUSPSRC_EMAC (1 << 5)
> +#define SUSPSRC_I2C (1 << 16)
> +#define SUSPSRC_SPI0 (1 << 21)
> +#define SUSPSRC_UART2 (1 << 20)
> +#define SUSPSRC_TIMER0 (1 << 27)
> +
> +/* UART PWREMU_MGMT definitions */
> +#define PWREMU_MGMT_BASE (0x30)
> +#define PWREMU_MGMT_FREE (1 << 0)
> +#define PWREMU_MGMT_URRST (1 << 13)
> +#define PWREMU_MGMT_UTRST (1 << 14)
> +
> +#endif /* __DA8XX_HARDWARE_H */
> diff --git a/include/asm-arm/arch-da8xx/i2c_defs.h b/include/asm-arm/arch-da8xx/i2c_defs.h
> new file mode 100644
> index 0000000..df4676a
> --- /dev/null
> +++ b/include/asm-arm/arch-da8xx/i2c_defs.h
> @@ -0,0 +1,93 @@
> +/*
> + * (C) Copyright 2004
> + * Texas Instruments, <www.ti.com>
> + *
> + * Some changes copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +#ifndef _DAVINCI_I2C_H_
> +#define _DAVINCI_I2C_H_
> +
> +#define I2C_WRITE 0
> +#define I2C_READ 1
> +
> +#define I2C_BASE 0x01c22000
This is the only difference I could find between this and
the davinci version. This could be easily combined.
> +
> +#define I2C_OA (I2C_BASE + 0x00)
> +#define I2C_IE (I2C_BASE + 0x04)
> +#define I2C_STAT (I2C_BASE + 0x08)
> +#define I2C_SCLL (I2C_BASE + 0x0c)
> +#define I2C_SCLH (I2C_BASE + 0x10)
> +#define I2C_CNT (I2C_BASE + 0x14)
> +#define I2C_DRR (I2C_BASE + 0x18)
> +#define I2C_SA (I2C_BASE + 0x1c)
> +#define I2C_DXR (I2C_BASE + 0x20)
> +#define I2C_CON (I2C_BASE + 0x24)
> +#define I2C_IV (I2C_BASE + 0x28)
> +#define I2C_PSC (I2C_BASE + 0x30)
> +
> +/* I2C masks */
> +
> +/* I2C Interrupt Enable Register (I2C_IE): */
> +#define I2C_IE_SCD_IE (1 << 5) /* Stop condition detect interrupt enable */
> +#define I2C_IE_XRDY_IE (1 << 4) /* Transmit data ready interrupt enable */
> +#define I2C_IE_RRDY_IE (1 << 3) /* Receive data ready interrupt enable */
> +#define I2C_IE_ARDY_IE (1 << 2) /* Register access ready interrupt enable */
> +#define I2C_IE_NACK_IE (1 << 1) /* No acknowledgment interrupt enable */
> +#define I2C_IE_AL_IE (1 << 0) /* Arbitration lost interrupt enable */
> +
> +/* I2C Status Register (I2C_STAT): */
> +
> +#define I2C_STAT_BB (1 << 12) /* Bus busy */
> +#define I2C_STAT_ROVR (1 << 11) /* Receive overrun */
> +#define I2C_STAT_XUDF (1 << 10) /* Transmit underflow */
> +#define I2C_STAT_AAS (1 << 9) /* Address as slave */
> +#define I2C_STAT_SCD (1 << 5) /* Stop condition detect */
> +#define I2C_STAT_XRDY (1 << 4) /* Transmit data ready */
> +#define I2C_STAT_RRDY (1 << 3) /* Receive data ready */
> +#define I2C_STAT_ARDY (1 << 2) /* Register access ready */
> +#define I2C_STAT_NACK (1 << 1) /* No acknowledgment interrupt enable */
> +#define I2C_STAT_AL (1 << 0) /* Arbitration lost interrupt enable */
> +
> +/* I2C Interrupt Code Register (I2C_INTCODE): */
> +
> +#define I2C_INTCODE_MASK 7
> +#define I2C_INTCODE_NONE 0
> +#define I2C_INTCODE_AL 1 /* Arbitration lost */
> +#define I2C_INTCODE_NAK 2 /* No acknowledgement/general call */
> +#define I2C_INTCODE_ARDY 3 /* Register access ready */
> +#define I2C_INTCODE_RRDY 4 /* Rcv data ready */
> +#define I2C_INTCODE_XRDY 5 /* Xmit data ready */
> +#define I2C_INTCODE_SCD 6 /* Stop condition detect */
> +
> +/* I2C Configuration Register (I2C_CON): */
> +
> +#define I2C_CON_EN (1 << 5) /* I2C module enable */
> +#define I2C_CON_STB (1 << 4) /* Start byte mode (master only) */
> +#define I2C_CON_MST (1 << 10) /* Master/slave mode */
> +#define I2C_CON_TRX (1 << 9) /* Transmitter/receiver mode (master only) */
> +#define I2C_CON_XA (1 << 8) /* Expand address */
> +#define I2C_CON_STP (1 << 11) /* Stop condition (master only) */
> +#define I2C_CON_STT (1 << 13) /* Start condition (master only) */
> +#define I2C_CON_FREE (1 << 14) /* Free run on emulation */
> +
> +#define I2C_TIMEOUT 0xffff0000 /* Timeout mask for poll_i2c_irq() */
> +
> +#endif
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
prev parent reply other threads:[~2009-10-24 22:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-23 10:34 [U-Boot] [PATCH v2 2/4] add TI DA8xx support: Add new directory for da8xx architecture includes Nick Thompson
2009-10-24 22:59 ` Tom [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AE386D7.9090406@windriver.com \
--to=tom.rix@windriver.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.