scripts: spl: fix typo
Subsystems (5)
PATCH v4 1/12 scripts: spl: fix typo
Typo fix: CONIFG->CONFIG
---
V2: new
V3: none
V4: none
scripts/Makefile.uncmd_spl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/Makefile.uncmd_spl +1 -1
@@ -9,7 +9,7 @@ ifdef CONFIG_SPL_BUILD ifndef CONFIG_SPL_DM CONFIG_DM_SERIAL= CONFIG_DM_GPIO= -CONIFG_DM_I2C= +CONFIG_DM_I2C= CONFIG_DM_SPI= CONFIG_DM_SPI_FLASH= endif
Signature · 1 line
2.6.6
PATCH v4 2/12 arm: dts: include dts for imx6sabresd
Import dts from commit aae4e7a8bc("Linux 4.13-rc4") for imx6sabresd board.
---
V2-V4: none
arch/arm/dts/Makefile | 3 + arch/arm/dts/imx6dl-sabresd.dts | 22 ++ arch/arm/dts/imx6dl.dtsi | 242 +++++++++++++ arch/arm/dts/imx6q-sabresd.dts | 30 ++ arch/arm/dts/imx6q.dtsi | 164 ++++++++- arch/arm/dts/imx6qdl-sabresd.dtsi | 738 ++++++++++++++++++++++++++++++++++++++ arch/arm/dts/imx6qdl.dtsi | 100 ++++-- arch/arm/dts/imx6qp-sabresd.dts | 93 +++++ arch/arm/dts/imx6qp.dtsi | 153 ++++++++ arch/arm/dts/imx6sx-sdb-reva.dts | 143 ++++++++ arch/arm/dts/imx6sx-sdb.dts | 147 ++++++++ arch/arm/dts/imx6sx-sdb.dtsi | 612 +++++++++++++++++++++++++++++++ 12 files changed, 2422 insertions(+), 25 deletions(-) create mode 100644 arch/arm/dts/imx6dl-sabresd.dts create mode 100644 arch/arm/dts/imx6q-sabresd.dts create mode 100644 arch/arm/dts/imx6qdl-sabresd.dtsi create mode 100644 arch/arm/dts/imx6qp-sabresd.dts create mode 100644 arch/arm/dts/imx6qp.dtsi create mode 100644 arch/arm/dts/imx6sx-sdb-reva.dts create mode 100644 arch/arm/dts/imx6sx-sdb.dts create mode 100644 arch/arm/dts/imx6sx-sdb.dtsi
arch/arm/dts/Makefile +3 -0
@@ -357,7 +357,10 @@ dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \ imx6sll-evk.dtb \ imx6dl-icore.dtb \ imx6dl-icore-rqs.dtb \ + imx6dl-sabresd.dtb \ imx6q-cm-fx6.dtb \ + imx6q-sabresd.dtb \ + imx6qp-sabresd.dtb \ imx6q-icore.dtb \ imx6q-icore-rqs.dtb \ imx6q-logicpd.dtb \
arch/arm/dts/imx6dl-sabresd.dts new file +22 -0
@@ -0,0 +1,22 @@ +/* + * Copyright (C) 2013 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/dts-v1/; + +#include "imx6dl.dtsi" +#include "imx6qdl-sabresd.dtsi" + +/ { + model = "Freescale i.MX6 DualLite SABRE Smart Device Board"; + compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl"; +}; + +&ipu1_csi1_from_ipu1_csi1_mux { + clock-lanes = <0>; + data-lanes = <1 2>; +};
arch/arm/dts/imx6dl.dtsi +242 -0
266 lines not on this page · raw message
arch/arm/dts/imx6q-sabresd.dts new file +30 -0
@@ -0,0 +1,30 @@ +/* + * Copyright 2012 Freescale Semiconductor, Inc. + * Copyright 2011 Linaro Ltd. + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; + +#include "imx6q.dtsi" +#include "imx6qdl-sabresd.dtsi" + +/ { + model = "Freescale i.MX6 Quad SABRE Smart Device Board"; + compatible = "fsl,imx6q-sabresd", "fsl,imx6q"; +}; + +&sata { + status = "okay"; +}; + +&ipu1_csi1_from_mipi_vc1 { + clock-lanes = <0>; + data-lanes = <1 2>; +};
arch/arm/dts/imx6q.dtsi +163 -1
210 lines not on this page · raw message
arch/arm/dts/imx6qdl-sabresd.dtsi new file +738 -0
738 lines not on this page · raw message
arch/arm/dts/imx6qdl.dtsi +76 -24
219 lines not on this page · raw message
arch/arm/dts/imx6qp-sabresd.dts new file +93 -0
93 lines not on this page · raw message
arch/arm/dts/imx6qp.dtsi new file +153 -0
153 lines not on this page · raw message
arch/arm/dts/imx6sx-sdb-reva.dts new file +143 -0
143 lines not on this page · raw message
arch/arm/dts/imx6sx-sdb.dts new file +147 -0
147 lines not on this page · raw message
arch/arm/dts/imx6sx-sdb.dtsi new file +612 -0
612 lines not on this page · raw message
Signature · 1 line
2.6.6
PATCH v4 3/12 power: pmic/regulator allow dm be omited by SPL
In reply to Peng FanAllow the dm driver be omited by SPL.
---
V2: none
V3: add r-b tag
V4: none
drivers/power/pmic/Makefile | 4 ++-- drivers/power/regulator/Makefile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/power/pmic/Makefile +2 -2
@@ -5,10 +5,10 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-$(CONFIG_DM_PMIC) += pmic-uclass.o +obj-$(CONFIG_$(SPL_)DM_PMIC) += pmic-uclass.o obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o -obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o +obj-$(CONFIG_$(SPL_)DM_PMIC_PFUZE100) += pfuze100.o obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.o obj-$(CONFIG_DM_PMIC_SANDBOX) += sandbox.o i2c_pmic_emul.o obj-$(CONFIG_PMIC_ACT8846) += act8846.o
drivers/power/regulator/Makefile +1 -1
@@ -9,7 +9,7 @@ obj-$(CONFIG_$(SPL_)DM_REGULATOR) += regulator-uclass.o obj-$(CONFIG_REGULATOR_ACT8846) += act8846.o obj-$(CONFIG_REGULATOR_AS3722) += as3722_regulator.o obj-$(CONFIG_DM_REGULATOR_MAX77686) += max77686.o -obj-$(CONFIG_DM_REGULATOR_PFUZE100) += pfuze100.o +obj-$(CONFIG_$(SPL_)DM_REGULATOR_PFUZE100) += pfuze100.o obj-$(CONFIG_REGULATOR_PWM) += pwm_regulator.o obj-$(CONFIG_$(SPL_)DM_REGULATOR_FIXED) += fixed.o obj-$(CONFIG_$(SPL_)DM_REGULATOR_GPIO) += gpio-regulator.o
Signature · 1 line
2.6.6
PATCH v4 4/12 Makefile: build FIT image if CONFIG_SPL_FIT_GENERATOR defined
In reply to Peng FanBuild FIT image if CONFIG_SPL_FIT_GENERATOR defined.
---
V2: none
V3: none
V4: wrap using SPL_LOAD_FIT to avoid build error.
Makefile | 6 ++++++ 1 file changed, 6 insertions(+)
Makefile +6 -0
@@ -805,6 +805,12 @@ ALL-y += u-boot-tegra.bin u-boot-nodtb-tegra.bin ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb-tegra.bin endif +ifdef CONFIG_SPL_LOAD_FIT +ifneq ($(CONFIG_SPL_FIT_GENERATOR),"") +ALL-y += u-boot.itb +endif +endif + # Add optional build target if defined in board/cpu/soc headers ifneq ($(CONFIG_BUILD_TARGET),) ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
Signature · 1 line
2.6.6
PATCH v4 5/12 imx: introduce mkimage_fit.sh
In reply to Peng FanIntroduce mkimage_fit.sh which is modifed fromboard/sunxi/mksunxi_fit_atf.sh.
ATF is dropped and modified for arm32 arch.
---
V2->V4: none
arch/arm/mach-imx/mkimage_fit.sh | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 arch/arm/mach-imx/mkimage_fit.sh
arch/arm/mach-imx/mkimage_fit.sh new file +63 -0
@@ -0,0 +1,63 @@ +#!/bin/sh +# +# script to generate FIT image source for 32-bit imx boards with +# multiple device trees (given on the command line) +# +# usage: $0 <dt_name> [<dt_name> [<dt_name] ...] + +cat << __HEADER_EOF +/dts-v1/; + +/ { + description = "Configuration to load ATF before U-Boot"; + #address-cells = <1>; + + images { + uboot at 1 { + description = "U-Boot (32-bit)"; + data = /incbin/("u-boot-nodtb.bin"); + type = "standalone"; + arch = "arm32"; + compression = "none"; + load = <0x17800000>; + }; +__HEADER_EOF + +cnt=1 +for dtname in $* +do + cat << __FDT_IMAGE_EOF + fdt@$cnt { + description = "$(basename $dtname .dtb)"; + data = /incbin/("$dtname"); + type = "flat_dt"; + compression = "none"; + }; +__FDT_IMAGE_EOF + cnt=$((cnt+1)) +done + +cat << __CONF_HEADER_EOF + }; + configurations { + default = "config at 1"; + +__CONF_HEADER_EOF + +cnt=1 +for dtname in $* +do + cat << __CONF_SECTION_EOF + config@$cnt { + description = "$(basename $dtname .dtb)"; + firmware = "uboot@1"; + fdt = "fdt@$cnt"; + }; +__CONF_SECTION_EOF + cnt=$((cnt+1)) +done + +cat << __ITS_EOF + }; +}; +__ITS_EOF
Signature · 1 line
2.6.6
PATCH v4 6/12 imx: mx6sabresd: implement board_fit_config_name_match
In reply to Peng FanImplement board_fit_config_name_match.
---
V2->V4: none
board/freescale/mx6sabresd/mx6sabresd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
board/freescale/mx6sabresd/mx6sabresd.c +13 -0
@@ -734,6 +734,19 @@ int spl_start_uboot(void) }#endif +#ifdef CONFIG_SPL_LOAD_FIT +int board_fit_config_name_match (const char *name) +{ +if (is_mx6dq () && !strcmp (name,"imx6q-sabresd" )) +return 0 ; +else if (is_mx6sdl () && !strcmp (name,"imx6dl-sabresd" )) +return 0 ; +else if (is_mx6dqp () && !strcmp (name,"imx6qp-sabresd" )) +return 0 ; +return -EINVAL ; +} +#endif +static void ccgr_init (void ) {struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR ;
Signature · 1 line
2.6.6
PATCH v4 7/12 imx: mx6sabresd: enable SPL FIT
In reply to Peng FanEnable SPL FIT. Now DM drivers are not enabled, so boards boot as before with only the difference that loading dtb.
---
V2->V4: none
configs/mx6sabresd_defconfig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
configs/mx6sabresd_defconfig +6 -1
@@ -9,6 +9,10 @@ CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_VIDEO=y +CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabresd" +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit.sh" CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6QDL" CONFIG_ENV_IS_IN_MMC=y CONFIG_BOOTDELAY=3
@@ -41,6 +45,8 @@ CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_OF_LIST="imx6q-sabresd imx6dl-sabresd imx6qp-sabresd" CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y
@@ -54,4 +60,3 @@ CONFIG_G_DNL_MANUFACTURER="FSL" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 # CONFIG_VIDEO_SW_CURSOR is not set -CONFIG_OF_LIBFDT=y
Signature · 1 line
2.6.6
PATCH v4 8/12 mmc: fsl_esdhc: switch to use CONFIG_IS_ENABLED
In reply to Peng FanSwitch to use CONFIG_IS_ENABLED.
---
V2->V4: none
drivers/mmc/fsl_esdhc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/mmc/fsl_esdhc.c +4 -4
@@ -113,7 +113,7 @@ struct fsl_esdhc_priv {int non_removable;int wp_enable;int vs18_enable; -#ifdef CONFIG_DM_GPIO +#if CONFIG_IS_ENABLED (DM_GPIO )struct gpio_desc cd_gpio;struct gpio_desc wp_gpio;#endif
@@ -695,7 +695,7 @@ static int esdhc_getcd_common(struct fsl_esdhc_priv *priv)#if CONFIG_IS_ENABLED (DM_MMC )if (priv->non_removable)return 1 ; -#ifdef CONFIG_DM_GPIO +#if CONFIG_IS_ENABLED (DM_GPIO )if (dm_gpio_is_valid (&priv->cd_gpio))return dm_gpio_get_value (&priv->cd_gpio);#endif
@@ -1048,7 +1048,7 @@ static int fsl_esdhc_probe(struct udevice *dev) priv->non_removable =1 ; }else { priv->non_removable =0 ; -#ifdef CONFIG_DM_GPIO +#if CONFIG_IS_ENABLED (DM_GPIO )gpio_request_by_name (dev,"cd-gpios" ,0 , &priv->cd_gpio,GPIOD_IS_IN );#endif
@@ -1056,7 +1056,7 @@ static int fsl_esdhc_probe(struct udevice *dev) priv->wp_enable =1 ; -#ifdef CONFIG_DM_GPIO +#if CONFIG_IS_ENABLED (DM_GPIO ) ret =gpio_request_by_name (dev,"wp-gpios" ,0 , &priv->wp_gpio,GPIOD_IS_IN );if (ret)
Signature · 1 line
2.6.6
PATCH v4 9/12 power: pmic.h: include dm/ofnode.h
In reply to Peng FanInclude dm/ofnode.h.
---
V2: none
V3: add r-b tag
V4: none
include/power/pmic.h | 1 + 1 file changed, 1 insertion(+)
include/power/pmic.h +1 -0
@@ -12,6 +12,7 @@#define __CORE_PMIC_H_#include <i2c.h> +#include <dm/ofnode.h> #include <linux/list.h> #include <power/power_chrg.h>
Signature · 1 line
2.6.6
PATCH v4 10/12 board: freescale: common: add pfuze dm code
In reply to Peng FanAdd pfuze dm code, this code does the same thing as pfuze.c, but only effects when CONFIG_$(SPL_)DM_PMIC_PFUZE100 enabled.
---
V2->V4: none
board/freescale/common/Makefile | 1 + board/freescale/common/pfuze.h | 5 +++ board/freescale/common/pfuze_dm.c | 89 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 board/freescale/common/pfuze_dm.c
board/freescale/common/Makefile +1 -0
@@ -61,6 +61,7 @@ obj-$(CONFIG_VSC_CROSSBAR) += vsc3316_3308.o obj-$(CONFIG_IDT8T49N222A) += idt8t49n222a_serdes_clk.o obj-$(CONFIG_ZM7300) += zm7300.o obj-$(CONFIG_POWER_PFUZE100) += pfuze.o +obj-$(CONFIG_$(SPL_)DM_PMIC_PFUZE100) += pfuze_dm.o obj-$(CONFIG_POWER_MC34VR500) += mc34vr500.o obj-$(CONFIG_LS102XA_STREAM_ID) += ls102xa_stream_id.o
board/freescale/common/pfuze.h +5 -0
@@ -7,7 +7,12 @@#ifndef __PFUZE_BOARD_HELPER__#define __PFUZE_BOARD_HELPER__ +#if CONFIG_IS_ENABLED (DM_PMIC_PFUZE100 ) +struct udevice *pfuze_common_init (void ); +int pfuze_mode_init (struct udevice *dev,u32 mode); +#else struct pmic *pfuze_common_init (unsigned char i2cbus);int pfuze_mode_init (struct pmic *p,u32 mode); +#endif #endif
board/freescale/common/pfuze_dm.c new file +89 -0
89 lines not on this page · raw message
Signature · 1 line
2.6.6
PATCH v4 11/12 imx: mx6sabresd: enable dm drivers
In reply to Peng FanEnable DM MMC/I2C/PMIC/GPIO/REGULATOR.
---
V2->V4: none
board/freescale/mx6sabresd/mx6sabresd.c | 326 +++++++++++++------------------- configs/mx6sabresd_defconfig | 15 ++ include/configs/mx6sabresd.h | 15 +- 3 files changed, 146 insertions(+), 210 deletions(-)
board/freescale/mx6sabresd/mx6sabresd.c +127 -199
@@ -12,7 +12,6 @@#include <asm/arch/mx6-pins.h> #include <linux/errno.h> #include <asm/gpio.h> -#include <asm/mach-imx/mxc_i2c.h> #include <asm/mach-imx/iomux-v3.h> #include <asm/mach-imx/boot_mode.h> #include <asm/mach-imx/video.h>
@@ -24,7 +23,6 @@#include <asm/arch/crm_regs.h> #include <asm/io.h> #include <asm/arch/sys_proto.h> -#include <i2c.h> #include <power/pmic.h> #include <power/pfuze100_pmic.h> #include "../common/pfuze.h"
@@ -46,14 +44,6 @@ DECLARE_GLOBAL_DATA_PTR;#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED | \ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST) -#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 I2C_PMIC 1 - -#define I2C_PAD MUX_PAD_CTRL(I2C_PAD_CTRL) -#define DISP0_PWR_EN IMX_GPIO_NR(1, 21)#define KEY_VOL_UP IMX_GPIO_NR(1, 4)
@@ -93,6 +83,7 @@ static void setup_iomux_enet(void) {SETUP_IOMUX_PADS (enet_pads); +gpio_request (IMX_GPIO_NR (1 ,25 ),"phy_rst" );/* Reset AR8031 PHY */ gpio_direction_output (IMX_GPIO_NR (1 ,25 ) ,0 );mdelay (10 );
@@ -100,47 +91,6 @@ static void setup_iomux_enet(void)udelay (100 ); } -static iomux_v3_cfg_t const usdhc2_pads[] = { -IOMUX_PADS (PAD_SD2_CLK__SD2_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_CMD__SD2_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT0__SD2_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT1__SD2_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT2__SD2_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT3__SD2_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D4__SD2_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D5__SD2_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D6__SD2_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D7__SD2_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D2__GPIO2_IO02 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ -}; - -static iomux_v3_cfg_t const usdhc3_pads[] = { -IOMUX_PADS (PAD_SD3_CLK__SD3_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_CMD__SD3_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT0__SD3_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT1__SD3_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT2__SD3_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT3__SD3_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT4__SD3_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT5__SD3_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT6__SD3_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT7__SD3_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D0__GPIO2_IO00 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ -}; - -static iomux_v3_cfg_t const usdhc4_pads[] = { -IOMUX_PADS (PAD_SD4_CLK__SD4_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_CMD__SD4_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT0__SD4_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT1__SD4_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT2__SD4_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT3__SD4_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT4__SD4_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT5__SD4_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT6__SD4_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT7__SD4_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -}; -static iomux_v3_cfg_t const ecspi1_pads[] = {IOMUX_PADS (PAD_KEY_COL0__ECSPI1_SCLK |MUX_PAD_CTRL (SPI_PAD_CTRL )),IOMUX_PADS (PAD_KEY_COL1__ECSPI1_MISO |MUX_PAD_CTRL (SPI_PAD_CTRL )),
@@ -187,6 +137,7 @@ static iomux_v3_cfg_t const bl_pads[] = {static void enable_backlight (void ) {SETUP_IOMUX_PADS (bl_pads); +gpio_request (DISP0_PWR_EN ,"disp0_pwr_en" );gpio_direction_output (DISP0_PWR_EN ,1 ); }
@@ -201,32 +152,6 @@ static void enable_lvds(struct display_info_t const *dev)enable_backlight (); } -static struct i2c_pads_info mx6q_i2c_pad_info1 = { - .scl = { - .i2c_mode =MX6Q_PAD_KEY_COL3__I2C2_SCL |I2C_PAD , - .gpio_mode =MX6Q_PAD_KEY_COL3__GPIO4_IO12 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,12 ) - }, - .sda = { - .i2c_mode =MX6Q_PAD_KEY_ROW3__I2C2_SDA |I2C_PAD , - .gpio_mode =MX6Q_PAD_KEY_ROW3__GPIO4_IO13 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,13 ) - } -}; - -static struct i2c_pads_info mx6dl_i2c_pad_info1 = { - .scl = { - .i2c_mode =MX6DL_PAD_KEY_COL3__I2C2_SCL |I2C_PAD , - .gpio_mode =MX6DL_PAD_KEY_COL3__GPIO4_IO12 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,12 ) - }, - .sda = { - .i2c_mode =MX6DL_PAD_KEY_ROW3__I2C2_SDA |I2C_PAD , - .gpio_mode =MX6DL_PAD_KEY_ROW3__GPIO4_IO13 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,13 ) - } -}; -static void setup_spi (void ) {SETUP_IOMUX_PADS (ecspi1_pads);
@@ -253,121 +178,11 @@ static void setup_iomux_uart(void)SETUP_IOMUX_PADS (uart1_pads); } -#ifdef CONFIG_FSL_ESDHC -struct fsl_esdhc_cfg usdhc_cfg[3 ] = { - {USDHC2_BASE_ADDR }, - {USDHC3_BASE_ADDR }, - {USDHC4_BASE_ADDR }, -}; - -#define USDHC2_CD_GPIO IMX_GPIO_NR(2, 2) -#define USDHC3_CD_GPIO IMX_GPIO_NR(2, 0) -int board_mmc_get_env_dev (int devno) {return devno -1 ; } -int board_mmc_getcd (struct mmc *mmc) -{ -struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; -int ret =0 ; - -switch (cfg->esdhc_base) { -case USDHC2_BASE_ADDR : - ret = !gpio_get_value (USDHC2_CD_GPIO ); -break ; -case USDHC3_BASE_ADDR : - ret = !gpio_get_value (USDHC3_CD_GPIO ); -break ; -case USDHC4_BASE_ADDR : - ret =1 ;/* eMMC/uSDHC4 is always present */ -break ; - } - -return ret; -} - -int board_mmc_init (bd_t *bis) -{ -#ifndef CONFIG_SPL_BUILD -int ret; -int i; - -/* -* According to the board_mmc_init() the following map is done: -* (U-Boot device node) (Physical Port) -* mmc0 SD2 -* mmc1 SD3 -* mmc2 eMMC -*/ -for (i =0 ; i <CONFIG_SYS_FSL_USDHC_NUM ; i++) { -switch (i) { -case 0 : -SETUP_IOMUX_PADS (usdhc2_pads); -gpio_direction_input (USDHC2_CD_GPIO ); - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); -break ; -case 1 : -SETUP_IOMUX_PADS (usdhc3_pads); -gpio_direction_input (USDHC3_CD_GPIO ); - usdhc_cfg[1 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); -break ; -case 2 : -SETUP_IOMUX_PADS (usdhc4_pads); - usdhc_cfg[2 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); -break ; -default : -printf ("Warning: you configured more USDHC controllers" -"(%d) then supported by the board (%d)\n" , - i +1 ,CONFIG_SYS_FSL_USDHC_NUM ); -return -EINVAL ; - } - - ret =fsl_esdhc_initialize (bis, &usdhc_cfg[i]); -if (ret) -return ret; - } - -return 0 ; -#else -struct src *psrc = (struct src *)SRC_BASE_ADDR ; -unsigned reg =readl (&psrc->sbmr1) >>11 ; -/* -* Upon reading BOOT_CFG register the following map is done: -* Bit 11 and 12 of BOOT_CFG register can determine the current -* mmc port -* 0x1 SD1 -* 0x2 SD2 -* 0x3 SD4 -*/ - -switch (reg &0x3 ) { -case 0x1 : -SETUP_IOMUX_PADS (usdhc2_pads); - usdhc_cfg[0 ].esdhc_base =USDHC2_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; -case 0x2 : -SETUP_IOMUX_PADS (usdhc3_pads); - usdhc_cfg[0 ].esdhc_base =USDHC3_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; -case 0x3 : -SETUP_IOMUX_PADS (usdhc4_pads); - usdhc_cfg[0 ].esdhc_base =USDHC4_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; - } - -return fsl_esdhc_initialize (bis, &usdhc_cfg[0 ]); -#endif -} -#endif -static int ar8031_phy_fixup (struct phy_device *phydev) {unsigned short val;
@@ -580,6 +395,8 @@ static void setup_usb(void)imx_iomux_set_gpr_register (1 ,13 ,1 ,0 );SETUP_IOMUX_PADS (usb_hc1_pads); + +gpio_request (IMX_GPIO_NR (1 ,29 ),"usb1" ); }int board_ehci_hcd_init (int port)
@@ -632,13 +449,13 @@ int board_init(void)/* address of boot parameters */ gd->bd->bi_boot_params =PHYS_SDRAM +0x100 ; +gpio_request (IMX_GPIO_NR (3 ,19 ),"pcie_power" ); +gpio_request (IMX_GPIO_NR (7 ,12 ),"pcie_reset" ); +#ifdef CONFIG_MXC_SPI setup_spi ();#endif -if (is_mx6dq () ||is_mx6dqp ()) -setup_i2c (1 ,CONFIG_SYS_I2C_SPEED ,0x7f , &mx6q_i2c_pad_info1); -else -setup_i2c (1 ,CONFIG_SYS_I2C_SPEED ,0x7f , &mx6dl_i2c_pad_info1); +#ifdef CONFIG_USB_EHCI_MX6 setup_usb ();#endif
@@ -646,34 +463,36 @@ int board_init(void)return 0 ; } +#ifndef CONFIG_SPL_BUILD int power_init_board (void ) { -struct pmic *p; +struct udevice *dev;unsigned int reg;int ret; - p =pfuze_common_init (I2C_PMIC ); -if (!p) + dev =pfuze_common_init (); +if (!dev)return -ENODEV ; - ret =pfuze_mode_init (p,APS_PFM ); + ret =pfuze_mode_init (dev,APS_PFM );if (ret <0 )return ret;/* Increase VGEN3 from 2.5 to 2.8V */ -pmic_reg_read (p,PFUZE100_VGEN3VOL , ®); + reg =pmic_reg_read (dev,PFUZE100_VGEN3VOL ); reg &= ~LDO_VOL_MASK ; reg |=LDOB_2_80V ; -pmic_reg_write (p,PFUZE100_VGEN3VOL , reg); +pmic_reg_write (dev,PFUZE100_VGEN3VOL , reg);/* Increase VGEN5 from 2.8 to 3V */ -pmic_reg_read (p,PFUZE100_VGEN5VOL , ®); + reg =pmic_reg_read (dev,PFUZE100_VGEN5VOL ); reg &= ~LDO_VOL_MASK ; reg |=LDOB_3_00V ; -pmic_reg_write (p,PFUZE100_VGEN5VOL , reg); +pmic_reg_write (dev,PFUZE100_VGEN5VOL , reg);return 0 ; } +#endif #ifdef CONFIG_MXC_SPI int board_spi_cs_gpio (unsigned bus,unsigned cs)
@@ -747,6 +566,115 @@ int board_fit_config_name_match(const char *name) }#endif +#ifdef CONFIG_FSL_ESDHC +static iomux_v3_cfg_t const usdhc2_pads[] = { +IOMUX_PADS (PAD_SD2_CLK__SD2_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_CMD__SD2_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT0__SD2_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT1__SD2_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT2__SD2_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT3__SD2_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D4__SD2_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D5__SD2_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D6__SD2_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D7__SD2_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D2__GPIO2_IO02 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ +}; + +static iomux_v3_cfg_t const usdhc3_pads[] = { +IOMUX_PADS (PAD_SD3_CLK__SD3_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_CMD__SD3_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT0__SD3_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT1__SD3_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT2__SD3_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT3__SD3_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT4__SD3_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT5__SD3_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT6__SD3_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT7__SD3_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D0__GPIO2_IO00 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ +}; + +static iomux_v3_cfg_t const usdhc4_pads[] = { +IOMUX_PADS (PAD_SD4_CLK__SD4_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_CMD__SD4_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT0__SD4_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT1__SD4_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT2__SD4_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT3__SD4_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT4__SD4_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT5__SD4_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT6__SD4_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT7__SD4_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +}; + +struct fsl_esdhc_cfg usdhc_cfg[3 ] = { + {USDHC2_BASE_ADDR }, + {USDHC3_BASE_ADDR }, + {USDHC4_BASE_ADDR }, +}; + +#define USDHC2_CD_GPIO IMX_GPIO_NR(2, 2) +#define USDHC3_CD_GPIO IMX_GPIO_NR(2, 0) + +int board_mmc_getcd (struct mmc *mmc) +{ +struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; +int ret =0 ; + +switch (cfg->esdhc_base) { +case USDHC2_BASE_ADDR : + ret = !gpio_get_value (USDHC2_CD_GPIO ); +break ; +case USDHC3_BASE_ADDR : + ret = !gpio_get_value (USDHC3_CD_GPIO ); +break ; +case USDHC4_BASE_ADDR : + ret =1 ;/* eMMC/uSDHC4 is always present */ +break ; + } + +return ret; +} + +int board_mmc_init (bd_t *bis) +{ +struct src *psrc = (struct src *)SRC_BASE_ADDR ; +unsigned reg =readl (&psrc->sbmr1) >>11 ; +/* +* Upon reading BOOT_CFG register the following map is done: +* Bit 11 and 12 of BOOT_CFG register can determine the current +* mmc port +* 0x1 SD1 +* 0x2 SD2 +* 0x3 SD4 +*/ + +switch (reg &0x3 ) { +case 0x1 : +SETUP_IOMUX_PADS (usdhc2_pads); + usdhc_cfg[0 ].esdhc_base =USDHC2_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; +case 0x2 : +SETUP_IOMUX_PADS (usdhc3_pads); + usdhc_cfg[0 ].esdhc_base =USDHC3_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; +case 0x3 : +SETUP_IOMUX_PADS (usdhc4_pads); + usdhc_cfg[0 ].esdhc_base =USDHC4_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; + } + +return fsl_esdhc_initialize (bis, &usdhc_cfg[0 ]); +} +#endif +static void ccgr_init (void ) {struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR ;
configs/mx6sabresd_defconfig +15 -0
@@ -40,6 +40,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_CACHE=y +CONFIG_CMD_PMIC=y +CONFIG_CMD_REGULATOR=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y
@@ -47,10 +49,23 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_OF_LIST="imx6q-sabresd imx6dl-sabresd imx6qp-sabresd" +# CONFIG_BLK is not set +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_MMC_OPS is not set CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PCI=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX6=y +CONFIG_DM_PMIC=y +CONFIG_DM_PMIC_PFUZE100=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_PFUZE100=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_GADGET=y
include/configs/mx6sabresd.h +4 -11
@@ -43,20 +43,9 @@#define CONFIG_PCIE_IMX_POWER_GPIO IMX_GPIO_NR(3, 19)#endif -/* I2C Configs */ -#define CONFIG_SYS_I2C #define CONFIG_SYS_I2C_MXC -#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ -#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ -#define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ #define CONFIG_SYS_I2C_SPEED 100000 -/* PMIC */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_PFUZE100 -#define CONFIG_POWER_PFUZE100_I2C_ADDR 0x08 -/* USB Configs */ #ifdef CONFIG_CMD_USB #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -67,4 +56,8 @@#define CONFIG_USB_MAX_CONTROLLER_COUNT 1/* Enabled USB controller number */ #endif +#ifdef CONFIG_SPL_BUILD +#undef CONFIG_SYS_I2C_MXC +#endif +#endif /* __MX6SABRESD_CONFIG_H */
Signature · 1 line
2.6.6
PATCH v4 11/12 imx: mx6sabresd: enable dm drivers
Hi Peng,
Quoted 520 lines · Peng Fan
Enable DM MMC/I2C/PMIC/GPIO/REGULATOR.
Signed-off-by Peng Fan <[email protected]>Cc Fabio Estevam <[email protected]>Cc Stefano Babic <[email protected]>---
V2->V4: noneboard/freescale/mx6sabresd/mx6sabresd.c | 326 +++++++++++++------------------- configs/mx6sabresd_defconfig | 15 ++ include/configs/mx6sabresd.h | 15 +- 3 files changed, 146 insertions(+), 210 deletions(-)board/freescale/mx6sabresd/mx6sabresd.c +127
-199@@ -12,7 +12,6 @@#include <asm/arch/mx6-pins.h> #include <linux/errno.h> #include <asm/gpio.h> -#include <asm/mach-imx/mxc_i2c.h> #include <asm/mach-imx/iomux-v3.h> #include <asm/mach-imx/boot_mode.h> #include <asm/mach-imx/video.h> @@ -24,7 +23,6 @@#include <asm/arch/crm_regs.h> #include <asm/io.h> #include <asm/arch/sys_proto.h> -#include <i2c.h> #include <power/pmic.h> #include <power/pfuze100_pmic.h> #include "../common/pfuze.h" @@ -46,14 +44,6 @@ DECLARE_GLOBAL_DATA_PTR;#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED | \ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST) -#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 I2C_PMIC 1 - -#define I2C_PAD MUX_PAD_CTRL(I2C_PAD_CTRL) -#define DISP0_PWR_EN IMX_GPIO_NR(1, 21)#define KEY_VOL_UP IMX_GPIO_NR(1, 4)@@ -93,6 +83,7 @@ static void setup_iomux_enet(void) {SETUP_IOMUX_PADS (enet_pads); +gpio_request (IMX_GPIO_NR (1 ,25 ),"phy_rst" );/* Reset AR8031 PHY */ gpio_direction_output (IMX_GPIO_NR (1 ,25 ) ,0 );mdelay (10 );@@ -100,47 +91,6 @@ static void setup_iomux_enet(void)udelay (100 ); } -static iomux_v3_cfg_t const usdhc2_pads[] = { -IOMUX_PADS (PAD_SD2_CLK__SD2_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_CMD__SD2_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT0__SD2_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT1__SD2_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT2__SD2_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD2_DAT3__SD2_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D4__SD2_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D5__SD2_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D6__SD2_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D7__SD2_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D2__GPIO2_IO02 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ -}; - -static iomux_v3_cfg_t const usdhc3_pads[] = { -IOMUX_PADS (PAD_SD3_CLK__SD3_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_CMD__SD3_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT0__SD3_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT1__SD3_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT2__SD3_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT3__SD3_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT4__SD3_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT5__SD3_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT6__SD3_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD3_DAT7__SD3_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_NANDF_D0__GPIO2_IO00 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ -}; - -static iomux_v3_cfg_t const usdhc4_pads[] = { -IOMUX_PADS (PAD_SD4_CLK__SD4_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_CMD__SD4_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT0__SD4_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT1__SD4_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT2__SD4_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT3__SD4_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT4__SD4_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT5__SD4_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT6__SD4_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -IOMUX_PADS (PAD_SD4_DAT7__SD4_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), -}; -static iomux_v3_cfg_t const ecspi1_pads[] = {IOMUX_PADS (PAD_KEY_COL0__ECSPI1_SCLK |MUX_PAD_CTRL (SPI_PAD_CTRL )),IOMUX_PADS (PAD_KEY_COL1__ECSPI1_MISO |MUX_PAD_CTRL (SPI_PAD_CTRL )),@@ -187,6 +137,7 @@ static iomux_v3_cfg_t const bl_pads[] = {static void enable_backlight (void ) {SETUP_IOMUX_PADS (bl_pads); +gpio_request (DISP0_PWR_EN ,"disp0_pwr_en" );gpio_direction_output (DISP0_PWR_EN ,1 ); }@@ -201,32 +152,6 @@ static void enable_lvds(struct display_info_t const *dev)enable_backlight (); } -static struct i2c_pads_info mx6q_i2c_pad_info1 = { - .scl = { - .i2c_mode =MX6Q_PAD_KEY_COL3__I2C2_SCL |I2C_PAD , - .gpio_mode =MX6Q_PAD_KEY_COL3__GPIO4_IO12 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,12 ) - }, - .sda = { - .i2c_mode =MX6Q_PAD_KEY_ROW3__I2C2_SDA |I2C_PAD , - .gpio_mode =MX6Q_PAD_KEY_ROW3__GPIO4_IO13 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,13 ) - } -}; - -static struct i2c_pads_info mx6dl_i2c_pad_info1 = { - .scl = { - .i2c_mode =MX6DL_PAD_KEY_COL3__I2C2_SCL |I2C_PAD , - .gpio_mode =MX6DL_PAD_KEY_COL3__GPIO4_IO12 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,12 ) - }, - .sda = { - .i2c_mode =MX6DL_PAD_KEY_ROW3__I2C2_SDA |I2C_PAD , - .gpio_mode =MX6DL_PAD_KEY_ROW3__GPIO4_IO13 |I2C_PAD , - .gp =IMX_GPIO_NR (4 ,13 ) - } -}; -static void setup_spi (void ) {SETUP_IOMUX_PADS (ecspi1_pads);@@ -253,121 +178,11 @@ static void setup_iomux_uart(void)SETUP_IOMUX_PADS (uart1_pads); } -#ifdef CONFIG_FSL_ESDHC -struct fsl_esdhc_cfg usdhc_cfg[3 ] = { - {USDHC2_BASE_ADDR }, - {USDHC3_BASE_ADDR }, - {USDHC4_BASE_ADDR }, -}; - -#define USDHC2_CD_GPIO IMX_GPIO_NR(2, 2) -#define USDHC3_CD_GPIO IMX_GPIO_NR(2, 0) -int board_mmc_get_env_dev (int devno) {return devno -1 ; } -int board_mmc_getcd (struct mmc *mmc) -{ -struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; -int ret =0 ; - -switch (cfg->esdhc_base) { -case USDHC2_BASE_ADDR : - ret = !gpio_get_value (USDHC2_CD_GPIO ); -break ; -case USDHC3_BASE_ADDR : - ret = !gpio_get_value (USDHC3_CD_GPIO ); -break ; -case USDHC4_BASE_ADDR : - ret =1 ;/* eMMC/uSDHC4 is always present */ -break ; - } - -return ret; -} - -int board_mmc_init (bd_t *bis) -{ -#ifndef CONFIG_SPL_BUILD -int ret; -int i; - -/* -* According to the board_mmc_init() the following map is done: -* (U-Boot device node) (Physical Port) -* mmc0 SD2 -* mmc1 SD3 -* mmc2 eMMC -*/ -for (i =0 ; i <CONFIG_SYS_FSL_USDHC_NUM ; i++) { -switch (i) { -case 0 : -SETUP_IOMUX_PADS (usdhc2_pads); -gpio_direction_input (USDHC2_CD_GPIO ); - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); -break ; -case 1 : -SETUP_IOMUX_PADS (usdhc3_pads); -gpio_direction_input (USDHC3_CD_GPIO ); - usdhc_cfg[1 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); -break ; -case 2 : -SETUP_IOMUX_PADS (usdhc4_pads); - usdhc_cfg[2 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); -break ; -default : -printf ("Warning: you configured more USDHC controllers" -"(%d) then supported by the board (%d)\n" , - i +1 ,CONFIG_SYS_FSL_USDHC_NUM ); -return -EINVAL ; - } - - ret =fsl_esdhc_initialize (bis, &usdhc_cfg[i]); -if (ret) -return ret; - } - -return 0 ; -#else -struct src *psrc = (struct src *)SRC_BASE_ADDR ; -unsigned reg =readl (&psrc->sbmr1) >>11 ; -/* -* Upon reading BOOT_CFG register the following map is done: -* Bit 11 and 12 of BOOT_CFG register can determine the current -* mmc port -* 0x1 SD1 -* 0x2 SD2 -* 0x3 SD4 -*/ - -switch (reg &0x3 ) { -case 0x1 : -SETUP_IOMUX_PADS (usdhc2_pads); - usdhc_cfg[0 ].esdhc_base =USDHC2_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; -case 0x2 : -SETUP_IOMUX_PADS (usdhc3_pads); - usdhc_cfg[0 ].esdhc_base =USDHC3_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; -case 0x3 : -SETUP_IOMUX_PADS (usdhc4_pads); - usdhc_cfg[0 ].esdhc_base =USDHC4_BASE_ADDR ; - usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); - gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; -break ; - } - -return fsl_esdhc_initialize (bis, &usdhc_cfg[0 ]); -#endif -} -#endif -static int ar8031_phy_fixup (struct phy_device *phydev) {unsigned short val;@@ -580,6 +395,8 @@ static void setup_usb(void)imx_iomux_set_gpr_register (1 ,13 ,1 ,0 );SETUP_IOMUX_PADS (usb_hc1_pads); + +gpio_request (IMX_GPIO_NR (1 ,29 ),"usb1" ); }int board_ehci_hcd_init (int port)@@ -632,13 +449,13 @@ int board_init(void)/* address of boot parameters */ gd->bd->bi_boot_params =PHYS_SDRAM +0x100 ; +gpio_request (IMX_GPIO_NR (3 ,19 ),"pcie_power" ); +gpio_request (IMX_GPIO_NR (7 ,12 ),"pcie_reset" ); +#ifdef CONFIG_MXC_SPI setup_spi ();#endif -if (is_mx6dq () ||is_mx6dqp ()) -setup_i2c (1 ,CONFIG_SYS_I2C_SPEED ,0x7f , &mx6q_i2c_pad_info1); -else -setup_i2c (1 ,CONFIG_SYS_I2C_SPEED ,0x7f , &mx6dl_i2c_pad_info1); +#ifdef CONFIG_USB_EHCI_MX6 setup_usb ();#endif @@ -646,34 +463,36 @@ int board_init(void)return 0 ; } +#ifndef CONFIG_SPL_BUILD int power_init_board (void ) { -struct pmic *p; +struct udevice *dev;unsigned int reg;int ret; - p =pfuze_common_init (I2C_PMIC ); -if (!p) + dev =pfuze_common_init (); +if (!dev)return -ENODEV ; - ret =pfuze_mode_init (p,APS_PFM ); + ret =pfuze_mode_init (dev,APS_PFM );if (ret <0 )return ret;/* Increase VGEN3 from 2.5 to 2.8V */ -pmic_reg_read (p,PFUZE100_VGEN3VOL , ®); + reg =pmic_reg_read (dev,PFUZE100_VGEN3VOL ); reg &= ~LDO_VOL_MASK ; reg |=LDOB_2_80V ; -pmic_reg_write (p,PFUZE100_VGEN3VOL , reg); +pmic_reg_write (dev,PFUZE100_VGEN3VOL , reg);/* Increase VGEN5 from 2.8 to 3V */ -pmic_reg_read (p,PFUZE100_VGEN5VOL , ®); + reg =pmic_reg_read (dev,PFUZE100_VGEN5VOL ); reg &= ~LDO_VOL_MASK ; reg |=LDOB_3_00V ; -pmic_reg_write (p,PFUZE100_VGEN5VOL , reg); +pmic_reg_write (dev,PFUZE100_VGEN5VOL , reg);return 0 ; } +#endif #ifdef CONFIG_MXC_SPI int board_spi_cs_gpio (unsigned bus,unsigned cs)@@ -747,6 +566,115 @@ int board_fit_config_name_match(const char *name) }#endif +#ifdef CONFIG_FSL_ESDHC +static iomux_v3_cfg_t const usdhc2_pads[] = { +IOMUX_PADS (PAD_SD2_CLK__SD2_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_CMD__SD2_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT0__SD2_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT1__SD2_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT2__SD2_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD2_DAT3__SD2_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D4__SD2_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D5__SD2_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D6__SD2_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D7__SD2_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D2__GPIO2_IO02 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ +}; + +static iomux_v3_cfg_t const usdhc3_pads[] = { +IOMUX_PADS (PAD_SD3_CLK__SD3_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_CMD__SD3_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT0__SD3_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT1__SD3_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT2__SD3_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT3__SD3_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT4__SD3_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT5__SD3_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT6__SD3_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD3_DAT7__SD3_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_NANDF_D0__GPIO2_IO00 |MUX_PAD_CTRL (NO_PAD_CTRL )),/* CD */ +}; + +static iomux_v3_cfg_t const usdhc4_pads[] = { +IOMUX_PADS (PAD_SD4_CLK__SD4_CLK |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_CMD__SD4_CMD |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT0__SD4_DATA0 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT1__SD4_DATA1 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT2__SD4_DATA2 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT3__SD4_DATA3 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT4__SD4_DATA4 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT5__SD4_DATA5 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT6__SD4_DATA6 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +IOMUX_PADS (PAD_SD4_DAT7__SD4_DATA7 |MUX_PAD_CTRL (USDHC_PAD_CTRL )), +}; + +struct fsl_esdhc_cfg usdhc_cfg[3 ] = { + {USDHC2_BASE_ADDR }, + {USDHC3_BASE_ADDR }, + {USDHC4_BASE_ADDR }, +}; + +#define USDHC2_CD_GPIO IMX_GPIO_NR(2, 2) +#define USDHC3_CD_GPIO IMX_GPIO_NR(2, 0) + +int board_mmc_getcd (struct mmc *mmc) +{ +struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; +int ret =0 ; + +switch (cfg->esdhc_base) { +case USDHC2_BASE_ADDR : + ret = !gpio_get_value (USDHC2_CD_GPIO ); +break ; +case USDHC3_BASE_ADDR : + ret = !gpio_get_value (USDHC3_CD_GPIO ); +break ; +case USDHC4_BASE_ADDR : + ret =1 ;/* eMMC/uSDHC4 is always present */ +break ; + } + +return ret; +} + +int board_mmc_init (bd_t *bis) +{ +struct src *psrc = (struct src *)SRC_BASE_ADDR ; +unsigned reg =readl (&psrc->sbmr1) >>11 ; +/* +* Upon reading BOOT_CFG register the following map is done: +* Bit 11 and 12 of BOOT_CFG register can determine the current +* mmc port +* 0x1 SD1 +* 0x2 SD2 +* 0x3 SD4 +*/ + +switch (reg &0x3 ) { +case 0x1 : +SETUP_IOMUX_PADS (usdhc2_pads); + usdhc_cfg[0 ].esdhc_base =USDHC2_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC2_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; +case 0x2 : +SETUP_IOMUX_PADS (usdhc3_pads); + usdhc_cfg[0 ].esdhc_base =USDHC3_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC3_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; +case 0x3 : +SETUP_IOMUX_PADS (usdhc4_pads); + usdhc_cfg[0 ].esdhc_base =USDHC4_BASE_ADDR ; + usdhc_cfg[0 ].sdhc_clk =mxc_get_clock (MXC_ESDHC4_CLK ); + gd->arch.sdhc_clk = usdhc_cfg[0 ].sdhc_clk; +break ; + } + +return fsl_esdhc_initialize (bis, &usdhc_cfg[0 ]); +} +#endif +static void ccgr_init (void ) {struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR ;configs/mx6sabresd_defconfig +15
-0@@ -40,6 +40,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_CACHE=y +CONFIG_CMD_PMIC=y +CONFIG_CMD_REGULATOR=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y@@ -47,10 +49,23 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_OF_LIST="imx6q-sabresd imx6dl-sabresd imx6qp-sabresd" +# CONFIG_BLK is not set +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +# CONFIG_DM_MMC_OPS is not set CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PCI=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX6=y +CONFIG_DM_PMIC=y +CONFIG_DM_PMIC_PFUZE100=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_PFUZE100=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_GADGET=yinclude/configs/mx6sabresd.h +0
-11@@ -43,20 +43,9 @@#define CONFIG_PCIE_IMX_POWER_GPIO IMX_GPIO_NR(3, 19)#endif -/* I2C Configs */ -#define CONFIG_SYS_I2C #define CONFIG_SYS_I2C_MXC -#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ -#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ -#define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ #define CONFIG_SYS_I2C_SPEED 100000 -/* PMIC */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_PFUZE100 -#define CONFIG_POWER_PFUZE100_I2C_ADDR 0x08 -/* USB Configs */ #ifdef CONFIG_CMD_USB #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
include/configs/mx6sabresd.h line 63
Quoted 8 lines
include/configs/mx6sabresd.h +4
-0@@ -67,4 +56,8 @@#define CONFIG_USB_MAX_CONTROLLER_COUNT 1/* Enabled USB controller number */ #endif +#ifdef CONFIG_SPL_BUILD +#undef CONFIG_SYS_I2C_MXC +#endif +#endif /* __MX6SABRESD_CONFIG_H */
Enabling DM drivers seems to break sabresd:
arm: + mx6sabresd+common/usb_storage.c: In function 'usb_stor_probe_device':+common/usb_storage.c:218:30: error: 'struct usb_device' has no member named 'dev'
+ data = dev_get_platdata(udev->dev);
+ ^+common/usb_storage.c:228:32: error: 'struct usb_device' has no member named 'dev'
+ ret = blk_create_devicef(udev->dev, "usb_storage_blk", str,
+ ^
Can you take a look ?
Best regards,
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk 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 =====================================================================
PATCH v4 11/12 imx: mx6sabresd: enable dm drivers
Hi Stefano,
Quoted 20 lines
-----Original Message-----
From: Stefano Babic [mailto:sbabic at denx.de]
Sent: Monday, September 25, 2017 10:12 PM
To: Peng Fan <[email protected]>; sbabic at denx.de
Cc: van.freenix at gmail.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: Re: [PATCH V4 11/12] imx: mx6sabresd: enable dm driversHi Peng,
Quoted 9 lines · Peng Fan
Enable DM MMC/I2C/PMIC/GPIO/REGULATOR.
Signed-off-by Peng Fan <[email protected]>Cc Fabio Estevam <[email protected]>Cc Stefano Babic <[email protected]>---
V2->V4: none
[..........]
Quoted 16 lines
Quoted 1 line
Enabling DM drivers seems to break sabresd:
arm: + mx6sabresd
(quoted diff) +2
-0+common/usb_storage.c: In function 'usb_stor_probe_device': +common/usb_storage.c:218:30: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +3
-0+ data = dev_get_platdata(udev->dev); + ^ +common/usb_storage.c:228:32: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +2
-0+ ret = blk_create_devicef(udev->dev, "usb_storage_blk", str, + ^
Quoted 1 line
Can you take a look ?
I build mx6sabresd_defconfig, I met the following warning based on imx master branch, but did not met the build error.
CC spl/common/spl/spl_fit.ocommon/spl/spl_fit.c: In function 'spl_load_fit_image':common/spl/spl_fit.c:201:7: warning: passing argument 4 of 'gunzip' from incompatible pointer type [enabled by default]
src, &length)) {
^
In file included from common/spl/spl_fit.c:8:0:
include/common.h:627:5: note: expected 'long unsigned int *' but argument is of type 'size_t *'
int gunzip(void *, int, unsigned char *, unsigned long *);
^Thanks,
Peng.
Quoted 13 lines
Best regards,
Stefano--
============================================================
=========
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
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
============================================================
=========
PATCH v4 11/12 imx: mx6sabresd: enable dm drivers
Hi Stefano,
Quoted 57 lines
-----Original Message-----
From: Peng Fan
Sent: Tuesday, September 26, 2017 10:04 AM
To: 'Stefano Babic' <[email protected]>
Cc: van.freenix at gmail.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: RE: [PATCH V4 11/12] imx: mx6sabresd: enable dm driversHi Stefano,
Quoted 20 lines
-----Original Message-----
From: Stefano Babic [mailto:sbabic at denx.de]
Sent: Monday, September 25, 2017 10:12 PM
To: Peng Fan <[email protected]>; sbabic at denx.de
Cc: van.freenix at gmail.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: Re: [PATCH V4 11/12] imx: mx6sabresd: enable dm driversHi Peng,
Quoted 9 lines · Peng Fan
Enable DM MMC/I2C/PMIC/GPIO/REGULATOR.
Signed-off-by Peng Fan <[email protected]>Cc Fabio Estevam <[email protected]>Cc Stefano Babic <[email protected]>---
V2->V4: none[..........]
Quoted 16 lines
Quoted 1 line
Enabling DM drivers seems to break sabresd:
arm: + mx6sabresd
(quoted diff) +2
-0+common/usb_storage.c: In function 'usb_stor_probe_device': +common/usb_storage.c:218:30: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +3
-0+ data = dev_get_platdata(udev->dev); + ^ +common/usb_storage.c:228:32: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +2
-0+ ret = blk_create_devicef(udev->dev, "usb_storage_blk", str, + ^Quoted 1 line
Can you take a look ?
I build
mx6sabresd_defconfig, I met the following warning based on imx master branch, but did not met the build error.
CCspl/common/spl/spl_fit.ocommon/spl/spl_fit.c: In function 'spl_load_fit_image':common/spl/spl_fit.c:201:7: warning: passing argument 4 of 'gunzip' from incompatible pointer type [enabled by default]
Quoted 6 lines
src, &length)) { ^In file included from
common/spl/spl_fit.c:8:0:include/common.h:627:5: note: expected 'long unsigned int *' but argument is of type 'size_t*'
intgunzip(void *, int, unsigned char *, unsigned long *);
Missed to say that this is not introduced by my patch.
Did not meet that error when build mx6sabresd_defconfig? I did not meet that error based on master or imx master branch.
Thanks,
Peng.
Quoted 19 lines
^Thanks,
Peng.Quoted 7 lines
Best regards,
Stefano--
============================================================
Quoted 5 lines
=========
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
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============================================================
Quoted 1 line
=========
PATCH v4 11/12 imx: mx6sabresd: enable dm drivers
Quoted 66 lines · Peng Fan
Hi Stefano,
Quoted 57 lines
-----Original Message-----
From: Peng Fan
Sent: Tuesday, September 26, 2017 10:04 AM
To: 'Stefano Babic' <[email protected]>
Cc: van.freenix at gmail.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: RE: [PATCH V4 11/12] imx: mx6sabresd: enable dm driversHi Stefano,
Quoted 20 lines
-----Original Message-----
From: Stefano Babic [mailto:sbabic at denx.de]
Sent: Monday, September 25, 2017 10:12 PM
To: Peng Fan <[email protected]>; sbabic at denx.de
Cc: van.freenix at gmail.com; u-boot at lists.denx.de; Fabio Estevam <[email protected]>
Subject: Re: [PATCH V4 11/12] imx: mx6sabresd: enable dm driversHi Peng,
Quoted 9 lines · Peng Fan
Enable DM MMC/I2C/PMIC/GPIO/REGULATOR.
Signed-off-by Peng Fan <[email protected]>Cc Fabio Estevam <[email protected]>Cc Stefano Babic <[email protected]>---
V2->V4: none[..........]
Quoted 16 lines
Quoted 1 line
Enabling DM drivers seems to break sabresd:
arm: + mx6sabresd
(quoted diff) +2
-0+common/usb_storage.c: In function 'usb_stor_probe_device': +common/usb_storage.c:218:30: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +3
-0+ data = dev_get_platdata(udev->dev); + ^ +common/usb_storage.c:228:32: error: 'struct usb_device' has no membernamed 'dev'
(quoted diff) +2
-0+ ret = blk_create_devicef(udev->dev, "usb_storage_blk", str, + ^Quoted 1 line
Can you take a look ?
I build
mx6sabresd_defconfig, I met the following warning based on imx master branch, but did not met the build error.
CCspl/common/spl/spl_fit.ocommon/spl/spl_fit.c: In function 'spl_load_fit_image':common/spl/spl_fit.c:201:7: warning: passing argument 4 of 'gunzip' from incompatible pointer type [enabled by default]Quoted 6 lines
src, &length)) { ^In file included from
common/spl/spl_fit.c:8:0:include/common.h:627:5: note: expected 'long unsigned int *' but argument is of type 'size_t*'
intgunzip(void *, int, unsigned char *, unsigned long *);
Quoted 1 line
Missed to say that this is not introduced by my patch.
Yes, it is not - it is due to concurrent mergfe of several patches.
Quoted 2 lines
Did not meet that error when build
mx6sabresd_defconfig? I did not meet that error based on master or imx master branch.
I got some further errors because I have already merged Fabio's (and someone patch). Fixes look trivial, but I do not want to do this as I cannot test.
Could you please take a look and rebase your set on top of current u-boot.imx ? Thanks !
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk 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 =====================================================================
PATCH v4 12/12 imx: mx6sabresd: update README
In reply to Peng FanUpdate README since we use FIT now.
---
V2->V4: none
board/freescale/mx6sabresd/README | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
board/freescale/mx6sabresd/README +9 -9
@@ -21,15 +21,15 @@ $ make mx6sabresd_defconfig $ make -This will generate the SPL and u-boot.img binaries. +This will generate the SPL and u-boot.itb binaries. - Flash the SPL binary into the SD card: $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 && sync -- Flash the u-boot.img binary into the SD card: +- Flash the u-boot.itb binary into the SD card: -$ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=69 && sync +$ sudo dd if=u-boot.itb of=/dev/sdX bs=1K seek=69 && sync 2. Booting from eMMC
@@ -39,7 +39,7 @@ $ make mx6sabresd_defconfig $ make -This will generate the SPL and u-boot.img binaries. +This will generate the SPL and u-boot.itb binaries. - Boot first from SD card as shown in the previous section
@@ -51,10 +51,10 @@ Mount the eMMC in the host PC: => ums 0 mmc 2 -- Flash SPL and u-boot.img binaries into the eMMC: +- Flash SPL and u-boot.itb binaries into the eMMC: $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 && sync -$ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=69 && sync +$ sudo dd if=u-boot.itb of=/dev/sdX bs=1K seek=69 && sync Set SW6 to eMMC 8-bit boot: 11010110
@@ -65,15 +65,15 @@ Set SW6 to eMMC 8-bit boot: 11010110 $ make mx6sabresd_defconfig $ make -This will generate the SPL image called SPL and the u-boot.img. +This will generate the SPL image called SPL and the u-boot.itb. - Flash the SPL image into the SD card: $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 oflag=sync status=none && sync -- Flash the u-boot.img image into the SD card: +- Flash the u-boot.itb image into the SD card: -$ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=69 oflag=sync status=none && sync +$ sudo dd if=u-boot.itb of=/dev/sdX bs=1K seek=69 oflag=sync status=none && sync Create a partition for root file system and extract it there:
Signature · 1 line
2.6.6
PATCH v4 1/12 scripts: spl: fix typo
In reply to Peng FanFor the patchset, Ping..
Thanks,
Peng.
Quoted 29 lines · Peng Fan
Typo fix:
CONIFG->CONFIGSigned-off-by Peng Fan <[email protected]>Cc Tom Rini <[email protected]>---
V2: new
V3: none
V4: none
scripts/Makefile.uncmd_spl| 2 +-1 file changed, 1 insertion(+), 1 deletion(-)scripts/Makefile.uncmd_spl +0
-0@@ -9,7 +9,7 @@ ifdef CONFIG_SPL_BUILDifndef
CONFIG_SPL_DMCONFIG_DM_SERIAL=CONFIG_DM_GPIO=scripts/Makefile.uncmd_spl +1
-1-CONIFG_DM_I2C= +CONFIG_DM_I2C=
CONFIG_DM_SPI=CONFIG_DM_SPI_FLASH=
endifSignature · 1 line
2.6.6
PATCH v4 1/12 scripts: spl: fix typo
Quoted 2 lines · Peng Fan
For the patchset, Ping..
I know, this is in my TODO list. I will review them soon.
Thanks for patience.
Regards,
Stefano
Quoted 32 lines
Thanks,
Peng.Quoted 29 lines · Peng Fan
Typo fix:
CONIFG->CONFIGSigned-off-by Peng Fan <[email protected]>Cc Tom Rini <[email protected]>---
V2: new
V3: none
V4: none
scripts/Makefile.uncmd_spl| 2 +-1 file changed, 1 insertion(+), 1 deletion(-)scripts/Makefile.uncmd_spl +0
-0@@ -9,7 +9,7 @@ ifdef CONFIG_SPL_BUILDifndef
CONFIG_SPL_DMCONFIG_DM_SERIAL=CONFIG_DM_GPIO=scripts/Makefile.uncmd_spl +1
-1-CONIFG_DM_I2C= +CONFIG_DM_I2C=
CONFIG_DM_SPI=CONFIG_DM_SPI_FLASH=
endifSignature · 1 line
2.6.6
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk 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 =====================================================================
PATCH v4 1/12 scripts: spl: fix typo
In reply to Peng FanQuoted 19 lines · Peng Fan
Typo fix:
CONIFG->CONFIGSigned-off-by Peng Fan <[email protected]>Cc Tom Rini <[email protected]>---
V2: new
V3: none
V4: nonescripts/Makefile.uncmd_spl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)scripts/Makefile.uncmd_spl +0
-0
scripts/Makefile.uncmd_spl ifdef CONFIG_SPL_BUILD · line 15
Quoted 8 lines
scripts/Makefile.uncmd_spl +1
-1@@ -9,7 +9,7 @@ ifdef CONFIG_SPL_BUILD ifndef CONFIG_SPL_DM CONFIG_DM_SERIAL= CONFIG_DM_GPIO= -CONIFG_DM_I2C= +CONFIG_DM_I2C= CONFIG_DM_SPI= CONFIG_DM_SPI_FLASH= endif
Applied to u-boot-imx, -master, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk 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 =====================================================================