[U-Boot] [[PATCH v3 2/2] gpio: omap5-uevm: Configure the tca6424 gpio expander

Nishanth Menon nm at ti.com
Thu Jul 11 20:02:11 CEST 2013


On Jul 11, 2013 10:55 AM, "Dan Murphy" <dmurphy at ti.com> wrote:
>
> On 07/10/2013 06:56 PM, Nishanth Menon wrote:
> > On 07/10/2013 03:06 PM, Dan Murphy wrote:
> >> Configure the tca6424 gpio expander
> >> This allows use of the debug and tri color LEDs.
> >>
> >> Signed-off-by: Dan Murphy <dmurphy at ti.com>
> >> ---
> >>   board/ti/omap5_uevm/evm.c      |   21 +++++++++++++++++++++
> >>   board/ti/omap5_uevm/mux_data.h |    2 ++
> >>   include/configs/omap5_uevm.h   |    5 +++++
> >>   3 files changed, 28 insertions(+)
> >>
> >> diff --git a/board/ti/omap5_uevm/evm.c b/board/ti/omap5_uevm/evm.c
> >> index 90046e8..0e9a559 100644
> >> --- a/board/ti/omap5_uevm/evm.c
> >> +++ b/board/ti/omap5_uevm/evm.c
> >> @@ -26,6 +26,7 @@
> >>   #include <palmas.h>
> >>   #include <asm/arch/sys_proto.h>
> >>   #include <asm/arch/mmc_host_def.h>
> >> +#include <tca642x.h>
> >>
> >>   #include "mux_data.h"
> >>
> >> @@ -35,6 +36,24 @@ const struct omap_sysinfo sysinfo = {
> >>       "Board: OMAP5430 EVM\n"
> >>   };
> >>
> >> +/* @brief tca642x_init - Initial states for the GPIO expander
> > documentation style?
> > /*
> >  * @brief
> > ?
> >> + * input reg, output reg, polarity reg, configuration reg
> >> + */
> >> +struct tca642x_bank_info tca642x_init[] = {
> >> +    { .input_reg = 0x00,
> >> +      .output_reg = 0x04,
> >> +      .polarity_reg = 0x00,
> >> +      .configuration_reg = 0x80 },
> >> +    { .input_reg = 0x00,
> >> +      .output_reg = 0x00,
> >> +      .polarity_reg = 0x00,
> >> +      .configuration_reg = 0xff },
> >> +    { .input_reg = 0x00,
> >> +      .output_reg = 0x00,
> >> +      .polarity_reg = 0x00,
> >> +      .configuration_reg = 0x40 },
> >> +};
> >> +
> >>   /**
> >>    * @brief board_init
> >>    *
> >> @@ -46,6 +65,8 @@ int board_init(void)
> >>       gd->bd->bi_arch_number = MACH_TYPE_OMAP5_SEVM;
> >>       gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param
addr */
> >>
> >> +    tca642x_set_inital_state(CONFIG_SYS_I2C_TCA642X_ADDR,
tca642x_init);
> >> +
> >>       return 0;
> >>   }
> >>
> >> diff --git a/board/ti/omap5_uevm/mux_data.h
b/board/ti/omap5_uevm/mux_data.h
> >> index a82795d..7e6415e 100644
> >> --- a/board/ti/omap5_uevm/mux_data.h
> >> +++ b/board/ti/omap5_uevm/mux_data.h
> >> @@ -56,6 +56,8 @@ const struct pad_conf_entry
core_padconf_array_essential[] = {
> >>       {USBD0_HS_DP, (IEN | M0)},    /*  USBD0_HS_DP */
> >>       {USBD0_HS_DM, (IEN | M0)},    /*  USBD0_HS_DM */
> >>       {USBD0_SS_RX, (IEN | M0)},    /*  USBD0_SS_RX */
> >> +    {I2C5_SCL, (IEN | M0)}, /* I2C5_SCL */
> > nit pick -> SCL (or i2c clk) is out put from master - always. IEN
enables full duplex, but anyways.. just a nitpick :)
> >
> OK I changed this and did a test and reads fail without the IEN set.
> This is to sync the client clocks.

Scl? I2c clock? Does not work without input- something is fishy no?

> >> +    {I2C5_SDA, (IEN | M0)}, /* I2C5_SDA */
> >>
> >>   };
> >>
> >> diff --git a/include/configs/omap5_uevm.h
b/include/configs/omap5_uevm.h
> >> index 46dacc2..bee1278 100644
> >> --- a/include/configs/omap5_uevm.h
> >> +++ b/include/configs/omap5_uevm.h
> >> @@ -53,6 +53,11 @@
> >>   #define CONFIG_PARTITION_UUIDS
> >>   #define CONFIG_CMD_PART
> >>
> >> +#define CONFIG_TCA642X
> >> +#define CONFIG_CMD_TCA642X
> >> +#define CONFIG_SYS_I2C_TCA642X_BUS_NUM 4
> >> +#define CONFIG_SYS_I2C_TCA642X_ADDR 0x22
> >> +
> >>   #define CONFIG_SYS_PROMPT        "OMAP5432 uEVM # "
> >>
> >>   #define CONSOLEDEV        "ttyO2"
> >>
> >
> > Else,
> > no further comments from me.
> > --
> > Regards,
> > Nishanth Menon
>
>
> --
> ------------------
> Dan Murphy
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list