All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] mx6qsabreauto: Add i2c to mx6qsabreauto board
Date: Wed, 15 May 2013 12:13:15 +0200	[thread overview]
Message-ID: <51935FBB.1080300@denx.de> (raw)
In-Reply-To: <1368504074-17600-1-git-send-email-b13784@freescale.com>

On 14/05/2013 06:01, Renato Frias wrote:
> Add i2c2 and 3 to mx6qsabreauto board, i2c3 is multiplexed
> use gpio to set steering.
> 
> Signed-off-by: Renato Frias <b13784@freescale.com>
> ---
>  board/freescale/mx6qsabreauto/mx6qsabreauto.c |   50 +++++++++++++++++++++++++
>  include/configs/mx6qsabreauto.h               |    6 +++
>  2 files changed, 56 insertions(+)
> 
> diff --git a/board/freescale/mx6qsabreauto/mx6qsabreauto.c b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
> index bfe4868..d6df750 100644
> --- a/board/freescale/mx6qsabreauto/mx6qsabreauto.c
> +++ b/board/freescale/mx6qsabreauto/mx6qsabreauto.c
> @@ -26,12 +26,14 @@
>  #include <asm/errno.h>
>  #include <asm/gpio.h>
>  #include <asm/imx-common/iomux-v3.h>
> +#include <asm/imx-common/mxc_i2c.h>
>  #include <asm/imx-common/boot_mode.h>
>  #include <mmc.h>
>  #include <fsl_esdhc.h>
>  #include <miiphy.h>
>  #include <netdev.h>
>  #include <asm/arch/sys_proto.h>
> +#include <i2c.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -46,6 +48,12 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
>  	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
>  
> +#define I2C_PAD_CTRL	(PAD_CTL_PUS_100K_UP |			\
> +	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
> +	PAD_CTL_ODE | PAD_CTL_SRE_FAST)
> +
> +#define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
> +
>  int dram_init(void)
>  {
>  	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
> @@ -76,6 +84,41 @@ iomux_v3_cfg_t const enet_pads[] = {
>  	MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL	| MUX_PAD_CTRL(ENET_PAD_CTRL),
>  };
>  
> +/* I2C2 PMIC, iPod, Tuner, Codec, Touch, HDMI EDID, MIPI CSI2 card */
> +struct i2c_pads_info i2c_pad_info1 = {
> +	.scl = {
> +		.i2c_mode = MX6_PAD_EIM_EB2__I2C2_SCL | PC,
> +		.gpio_mode = MX6_PAD_EIM_EB2__GPIO_2_30 | PC,
> +		.gp = IMX_GPIO_NR(2, 30)
> +	},
> +	.sda = {
> +		.i2c_mode = MX6_PAD_KEY_ROW3__I2C2_SDA | PC,
> +		.gpio_mode = MX6_PAD_KEY_ROW3__GPIO_4_13 | PC,
> +		.gp = IMX_GPIO_NR(4, 13)
> +	}
> +};
> +
> +/*
> + * I2C3 MLB, Port Expanders (A, B, C), Video ADC, Light Sensor,
> + * Compass Sensor, Accelerometer, Res Touch
> + */
> +struct i2c_pads_info i2c_pad_info2 = {
> +	.scl = {
> +		.i2c_mode = MX6_PAD_GPIO_3__I2C3_SCL | PC,
> +		.gpio_mode = MX6_PAD_GPIO_3__GPIO_1_3 | PC,
> +		.gp = IMX_GPIO_NR(1, 3)
> +	},
> +	.sda = {
> +		.i2c_mode = MX6_PAD_EIM_D18__I2C3_SDA | PC,
> +		.gpio_mode = MX6_PAD_EIM_D18__GPIO_3_18 | PC,
> +		.gp = IMX_GPIO_NR(3, 18)
> +	}
> +};
> +
> +iomux_v3_cfg_t const i2c3_pads[] = {
> +	MX6_PAD_EIM_A24__GPIO_5_4		| MUX_PAD_CTRL(NO_PAD_CTRL),
> +};
> +
>  static void setup_iomux_enet(void)
>  {
>  	imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
> @@ -216,6 +259,13 @@ int board_init(void)
>  	/* address of boot parameters */
>  	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
>  
> +	/* I2C 2 and 3 setup - I2C 3 hw mux with EIM */
> +	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
> +	/* I2C 3 Steer */
> +	gpio_direction_output(IMX_GPIO_NR(5, 4), 1);
> +	imx_iomux_v3_setup_multiple_pads(i2c3_pads, ARRAY_SIZE(i2c3_pads));
> +	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
> +
>  	return 0;
>  }
>  
> diff --git a/include/configs/mx6qsabreauto.h b/include/configs/mx6qsabreauto.h
> index 1583c11..947ea60 100644
> --- a/include/configs/mx6qsabreauto.h
> +++ b/include/configs/mx6qsabreauto.h
> @@ -38,4 +38,10 @@
>  #define CONFIG_SYS_MMC_ENV_PART		1	/* Boot partition 1 */
>  #endif
>  
> +/* I2C Configs */
> +#define CONFIG_CMD_I2C
> +#define CONFIG_I2C_MULTI_BUS
> +#define CONFIG_I2C_MXC
> +#define CONFIG_SYS_I2C_SPEED		100000
> +
>  #endif                         /* __MX6QSABREAUTO_CONFIG_H */
> 

Acked-by: Stefano Babic <sbabic@denx.de>

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

  parent reply	other threads:[~2013-05-15 10:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-14  4:01 [U-Boot] [PATCH 1/2] mx6qsabreauto: Add i2c to mx6qsabreauto board Renato Frias
2013-05-14  4:01 ` [U-Boot] [PATCH 2/2] mx6qsabreauto: Add Port Expander reset Renato Frias
2013-05-15 10:13   ` Stefano Babic
2013-06-03 11:21   ` Stefano Babic
2013-05-14 22:27 ` [U-Boot] [PATCH 1/2] mx6qsabreauto: Add i2c to mx6qsabreauto board Otavio Salvador
2013-05-15  1:07   ` Fabio Estevam
2013-05-15 10:13 ` Stefano Babic [this message]
2013-06-03 11:20 ` Stefano Babic

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=51935FBB.1080300@denx.de \
    --to=sbabic@denx.de \
    --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.