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

Nishanth Menon nm at ti.com
Thu Jul 11 01:56:15 CEST 2013


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

> +	{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


More information about the U-Boot mailing list