Support for Voipac X53-DMM-668 module and Voipac Baseboard
Subsystems (5)
v3 cover Support for Voipac X53-DMM-668 module and Voipac Baseboard
This patchset adds support for Voipac Baseboard using x53-dmm-668 module (equipped with i.mx53 CPU). More info about the module may be found at: http://www.voipac.com/#X53-DMM-668
Changes since v2:
* Fix errorhandling in fec_imx
* Define flash controller in DTS
* Use imx53_bbu_internal_nand_register_handler
Rostislav Lisovy (3):
ARM: dts: i.mx53: Internal keyboard controller + i2c pinmux
ARM: i.mx53: Parse Reset GPIO pin in FEC driver from Devicetree
ARM: i.mx53: Support for Voipac board with X53-DMM-668 module.
arch/arm/boards/Makefile | 1 + arch/arm/boards/freescale-mx53-vmx53/Makefile | 3 + arch/arm/boards/freescale-mx53-vmx53/board.c | 57 ++++++ .../boards/freescale-mx53-vmx53/env/config-board | 8 + .../flash-header-imx53-vmx53.imxcfg | 54 ++++++ arch/arm/boards/freescale-mx53-vmx53/lowlevel.c | 19 ++ arch/arm/dts/Makefile | 4 +- arch/arm/dts/imx53-voipac-bsb.dts | 135 +++++++++++++ arch/arm/dts/imx53-voipac-dmm-668.dtsi | 204 ++++++++++++++++++++ arch/arm/dts/imx53.dtsi | 15 ++ arch/arm/mach-imx/Kconfig | 8 + drivers/net/fec_imx.c | 21 ++ images/Makefile.imx | 5 + 13 files changed, 533 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boards/freescale-mx53-vmx53/Makefile create mode 100644 arch/arm/boards/freescale-mx53-vmx53/board.c create mode 100644 arch/arm/boards/freescale-mx53-vmx53/env/config-board create mode 100644 arch/arm/boards/freescale-mx53-vmx53/flash-header-imx53-vmx53.imxcfg create mode 100644 arch/arm/boards/freescale-mx53-vmx53/lowlevel.c create mode 100644 arch/arm/dts/imx53-voipac-bsb.dts create mode 100644 arch/arm/dts/imx53-voipac-dmm-668.dtsi
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v3 1/3 ARM: dts: i.mx53: Internal keyboard controller + i2c pinmux
arch/arm/dts/imx53.dtsi +15 -0
@@ -269,6 +269,14 @@ #interrupt-cells = <2>; }; + kpp: kpp@53f94000 { + compatible = "fsl,imx53-kpp", "fsl,imx21-kpp"; + reg = <0x53f94000 0x4000>; + interrupts = <60>; + clocks = <&clks 0>; + status = "disabled"; + }; + wdog1: wdog@53f98000 { compatible = "fsl,imx53-wdt", "fsl,imx21-wdt"; reg = <0x53f98000 0x4000>;
@@ -587,6 +595,13 @@ MX53_PAD_GPIO_5__I2C3_SCL 0xc0000000 >; }; + + pinctrl_i2c3_2: i2c3grp-2 { + fsl,pins = < + MX53_PAD_GPIO_3__I2C3_SCL 0xc0000000 + MX53_PAD_GPIO_6__I2C3_SDA 0xc0000000 + >; + }; }; ipu_disp0 {
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v3 2/3 ARM: i.mx53: Parse Reset GPIO pin in FEC driver from Devicetree
In reply to Rostislav Lisovydrivers/net/fec_imx.c +19 -0
@@ -27,6 +27,8 @@#include <linux/clk.h> #include <linux/err.h> #include <of_net.h> +#include <of_gpio.h> +#include <gpio.h> #include <asm/mmu.h>
@@ -643,6 +645,7 @@ static int fec_probe(struct device_d *dev)void *base;int ret;enum fec_type type; +int phy_reset; ret =dev_get_drvdata (dev, (unsigned long *)&type);if (ret)
@@ -671,6 +674,22 @@ static int fec_probe(struct device_d *dev) fec->regs =dev_request_mem_region (dev,0 ); + phy_reset =of_get_named_gpio (dev->device_node,"phy-reset-gpios" ,0 ); +if (!gpio_is_valid (phy_reset)) { +dev_info (dev,"'phy-reset' gpio is not valid\n" ); + }else { + ret =gpio_request (phy_reset,"phy-reset" ); +if (ret) + goto err_free; + + ret =gpio_direction_output (phy_reset,0 ); +if (ret) + goto err_free; + +udelay (10 ); +gpio_set_value (phy_reset,1 ); + } +/* Reset chip. */ writel (FEC_ECNTRL_RESET , fec->regs +FEC_ECNTRL );while (readl (fec->regs +FEC_ECNTRL ) &1 ) {
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Sascha Hauer
maintainerRe: [PATCH 2/3] ARM: i.mx53: Parse Reset GPIO pin in FEC driver from Devicetree
Quoted 24 lines · Rostislav Lisovy
Signed-off-by Rostislav Lisovy <[email protected]>drivers/net/fec_imx.c +3
-0@@ -27,6 +27,8 @@#include <linux/clk.h> #include <linux/err.h> #include <of_net.h> +#include <of_gpio.h> +#include <gpio.h> #include <asm/mmu.h> @@ -643,6 +645,7 @@ static int fec_probe(struct device_d *dev)void *base;int ret;enum fec_type type; +int phy_reset; ret =dev_get_drvdata (dev, (unsigned long *)&type);if (ret)
drivers/net/fec_imx.c static int fec_probe(struct device_d *dev) · line 679
Quoted 6 lines
drivers/net/fec_imx.c +3
-0@@ -671,6 +674,22 @@ static int fec_probe(struct device_d *dev) fec->regs =dev_request_mem_region (dev,0 ); + phy_reset =of_get_named_gpio (dev->device_node,"phy-reset-gpios" ,0 ); +if (!gpio_is_valid (phy_reset)) { +dev_info (dev,"'phy-reset' gpio is not valid\n" );
Applied this series, but dropped this message. The problem with these kind of messages is that now nearly all i.MX users start seeing it and wonder if this is something they have to care about.
Sascha
Quoted 25 lines
drivers/net/fec_imx.c +13
-0+ }else { + ret =gpio_request (phy_reset,"phy-reset" ); +if (ret) + goto err_free; + + ret =gpio_direction_output (phy_reset,0 ); +if (ret) + goto err_free; + +udelay (10 ); +gpio_set_value (phy_reset,1 ); + } +/* Reset chip. */ writel (FEC_ECNTRL_RESET , fec->regs +FEC_ECNTRL );while (readl (fec->regs +FEC_ECNTRL ) &1 ) {Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Signature · 9 lines
Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/3] ARM: i.mx53: Parse Reset GPIO pin in FEC driver from Devicetree
Quoted 4 lines · Rostislav Lisovy
Quoted 3 lines
Signed-off-by Rostislav Lisovy <[email protected]>drivers/net/fec_imx.c +0
-0
...
Quoted 7 lines
drivers/net/fec_imx.c static int fec_probe(struct device_d *dev) · line 679
Quoted 3 lines
drivers/net/fec_imx.c +3
-0+ phy_reset =of_get_named_gpio (dev->device_node,"phy-reset-gpios" ,0 ); +if (!gpio_is_valid (phy_reset)) { +dev_info (dev,"'phy-reset' gpio is not valid\n" );Applied this series, but dropped this message. The problem with these kind of messages is that now nearly all i.MX users start seeing it and wonder if this is something they have to care about.
"phy-reset-duration" property should be handled together with "phy-reset-gpios"-property. Additionally, the reset level is hardcoded to "0", but should be taken from 2nd cell GPIO DT definition.
I am not sure about 2nd issue, but the first can be implemented very easy.
---
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
PATCH v3 3/3 ARM: i.mx53: Support for Voipac board with X53-DMM-668 module.
In reply to Rostislav LisovyDevice definitions is read from the devicetree description. The board support is using 'multiboard' approach.
create mode 100644 arch/arm/boards/freescale-mx53-vmx53/Makefile create mode 100644 arch/arm/boards/freescale-mx53-vmx53/board.c create mode 100644 arch/arm/boards/freescale-mx53-vmx53/env/config-board create mode 100644 arch/arm/boards/freescale-mx53-vmx53/flash-header-imx53-vmx53.imxcfg create mode 100644 arch/arm/boards/freescale-mx53-vmx53/lowlevel.c create mode 100644 arch/arm/dts/imx53-voipac-bsb.dts create mode 100644 arch/arm/dts/imx53-voipac-dmm-668.dtsi
arch/arm/boards/Makefile +1 -0
@@ -36,6 +36,7 @@ obj-$(CONFIG_MACH_FREESCALE_MX35_3STACK) += freescale-mx35-3-stack/ obj-$(CONFIG_MACH_FREESCALE_MX51_PDK) += freescale-mx51-pdk/ obj-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += freescale-mx53-loco/ obj-$(CONFIG_MACH_FREESCALE_MX53_SMD) += freescale-mx53-smd/ +obj-$(CONFIG_MACH_FREESCALE_MX53_VMX53) += freescale-mx53-vmx53/ obj-$(CONFIG_MACH_GE863) += telit-evk-pro3/ obj-$(CONFIG_MACH_GK802) += gk802/ obj-$(CONFIG_MACH_GUF_CUPID) += guf-cupid/
arch/arm/boards/freescale-mx53-vmx53/Makefile new file +3 -0
@@ -0,0 +1,3 @@ +obj-y += board.o flash-header-imx53-vmx53.dcd.o +extra-y += flash-header-imx53-vmx53.dcd.S flash-header-imx53-vmx53.dcd +lwl-y += lowlevel.o
arch/arm/boards/freescale-mx53-vmx53/board.c new file +57 -0
57 lines not on this page · raw message
arch/arm/boards/freescale-mx53-vmx53/env/config-board new file +7 -0
@@ -0,0 +1,7 @@ +#!/bin/sh + +# board defaults, do not change in running system. Change /env/config +# instead + +global.hostname=vmx53 +global.linux.bootargs.base="console=ttymxc0,115200"
arch/arm/boards/freescale-mx53-vmx53/flash-header-imx53-vmx53.imxcfg new file +54 -0
54 lines not on this page · raw message
arch/arm/boards/freescale-mx53-vmx53/lowlevel.c new file +19 -0
@@ -0,0 +1,19 @@ +#include <common.h> +#include <mach/esdctl.h> +#include <asm/barebox-arm-head.h> +#include <asm/barebox-arm.h> + +extern char __dtb_imx53_voipac_bsb_start[]; + +ENTRY_FUNCTION (start_imx53_vmx53)(void ) +{ +uint32_t fdt; + +__barebox_arm_head (); + +arm_cpu_lowlevel_init (); + + fdt = (uint32_t )__dtb_imx53_voipac_bsb_start -get_runtime_offset (); + +imx53_barebox_entry (fdt); +}
arch/arm/dts/Makefile +3 -1
@@ -1,6 +1,7 @@ dtb-$(CONFIG_ARCH_IMX51) += imx51-babbage.dtb \ imx51-genesi-efika-sb.dtb -dtb-$(CONFIG_ARCH_IMX53) += imx53-qsb.dtb +dtb-$(CONFIG_ARCH_IMX53) += imx53-qsb.dtb \ + imx53-voipac-bsb.dtb dtb-$(CONFIG_ARCH_IMX6) += imx6q-gk802.dtb \ imx6dl-dfi-fs700-m60-6s.dtb \ imx6q-dfi-fs700-m60-6q.dtb \
@@ -23,6 +24,7 @@ obj-$(CONFIG_BUILTIN_DTB) += $(BUILTIN_DTB).dtb.o pbl-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += imx51-genesi-efika-sb.dtb.o pbl-$(CONFIG_MACH_FREESCALE_MX51_PDK) += imx51-babbage.dtb.o pbl-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += imx53-qsb.dtb.o +pbl-$(CONFIG_MACH_FREESCALE_MX53_VMX53) += imx53-voipac-bsb.dtb.o pbl-$(CONFIG_MACH_DFI_FS700_M60) += imx6q-dfi-fs700-m60-6q.dtb.o imx6dl-dfi-fs700-m60-6s.dtb.o pbl-$(CONFIG_MACH_PHYTEC_PFLA02) += imx6q-phytec-pbab01.dtb.o pbl-$(CONFIG_MACH_REALQ7) += imx6q-dmo-realq7.dtb.o
arch/arm/dts/imx53-voipac-bsb.dts new file +135 -0
135 lines not on this page · raw message
arch/arm/dts/imx53-voipac-dmm-668.dtsi new file +204 -0
204 lines not on this page · raw message
arch/arm/mach-imx/Kconfig +8 -0
@@ -20,6 +20,7 @@ config ARCH_TEXT_BASE default 0x97f00000 if MACH_FREESCALE_MX51_PDK default 0x7ff00000 if MACH_FREESCALE_MX53_LOCO default 0x7ff00000 if MACH_FREESCALE_MX53_SMD + default 0x7ff00000 if MACH_FREESCALE_MX53_VMX53 default 0x87f00000 if MACH_GUF_CUPID default 0x93d00000 if MACH_TX25 default 0x7ff00000 if MACH_TQMA53
@@ -197,6 +198,13 @@ config MACH_FREESCALE_MX53_LOCO bool "Freescale i.MX53 LOCO" select ARCH_IMX53 +config MACH_FREESCALE_MX53_VMX53 + bool "Voipac i.MX53" + select ARCH_IMX53 + help + Say Y here if you are using the Voipac Technologies X53-DMM-668 + module equipped with a Freescale i.MX53 Processor + config MACH_PHYTEC_PFLA02 bool "Phytec phyFLEX-i.MX6 Ouad" select ARCH_IMX6
images/Makefile.imx +5 -0
@@ -26,6 +26,11 @@ CFG_start_imx53_loco.pblx.imximg = $(board)/freescale-mx53-loco/flash-header-imx FILE_barebox-freescale-imx53-loco.img = start_imx53_loco.pblx.imximg image-$(CONFIG_MACH_FREESCALE_MX53_LOCO) += barebox-freescale-imx53-loco.img +pblx-$(CONFIG_MACH_FREESCALE_MX53_VMX53) += start_imx53_vmx53 +CFG_start_imx53_vmx53.pblx.imximg = $(board)/freescale-mx53-vmx53/flash-header-imx53-vmx53.imxcfg +FILE_barebox-freescale-imx53-vmx53.img = start_imx53_vmx53.pblx.imximg +image-$(CONFIG_MACH_FREESCALE_MX53_VMX53) += barebox-freescale-imx53-vmx53.img + # ----------------------- i.MX6 based boards --------------------------- pblx-$(CONFIG_MACH_REALQ7) += start_imx6_realq7 CFG_start_imx6_realq7.pblx.imximg = $(board)/dmo-mx6-realq7/flash-header.imxcfg
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox