[U-Boot] [PATCH 1/5] ARM: dts: omap36xx-u-boot.dtsi

Make omap36xx-u-boot.dtsi include omap3-u-boot.dtsi until the new omap serial driver is available. This allows higher level functions to include those and not replicate contents at higher levels.
Signed-off-by: Adam Ford aford173@gmail.com
diff --git a/arch/arm/dts/logicpd-torpedo-37xx-devkit-u-boot.dtsi b/arch/arm/dts/logicpd-torpedo-37xx-devkit-u-boot.dtsi index d584b4a9ab..96ad636755 100644 --- a/arch/arm/dts/logicpd-torpedo-37xx-devkit-u-boot.dtsi +++ b/arch/arm/dts/logicpd-torpedo-37xx-devkit-u-boot.dtsi @@ -3,9 +3,10 @@ * Copyright (C) 2017 * Logic PD - http://www.logicpd.com */ +#include "omap36xx-u-boot.dtsi"
/ { - model = "LogicPD Zoom OMAP3 Development Kit"; + model = "LogicPD Zoom DM37 Torpedo Development Kit";
chosen { stdout-path = &uart1; @@ -26,17 +27,4 @@
&mmc3 { status = "disabled"; -}; - -&uart1 { - reg-shift = <2>; -}; - -&uart2 { - reg-shift = <2>; -}; - -&uart3 { - reg-shift = <2>; -}; - +}; \ No newline at end of file diff --git a/arch/arm/dts/omap36xx-u-boot.dtsi b/arch/arm/dts/omap36xx-u-boot.dtsi index 374499dcb2..0b4b909e87 100644 --- a/arch/arm/dts/omap36xx-u-boot.dtsi +++ b/arch/arm/dts/omap36xx-u-boot.dtsi @@ -3,6 +3,7 @@ * Copyright (C) 2017 * Logic PD - http://www.logicpd.com */ +#include "omap3-u-boot.dtsi"
&uart4 { reg-shift = <2>;

Create U-Boot tweaks for the Logic PD AM/DM37 SOM-LV so we can use its device tree.
Signed-off-by: Adam Ford aford173@gmail.com
diff --git a/arch/arm/dts/logicpd-som-lv-37xx-devkit-u-boot.dtsi b/arch/arm/dts/logicpd-som-lv-37xx-devkit-u-boot.dtsi new file mode 100644 index 0000000000..3de9e49c5f --- /dev/null +++ b/arch/arm/dts/logicpd-som-lv-37xx-devkit-u-boot.dtsi @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2017 + * Logic PD - http://www.logicpd.com + */ +#include "omap36xx-u-boot.dtsi" + +/ { + model = "LogicPD Zoom DM37 SOM-LV Development Kit"; + + chosen { + stdout-path = &uart1; + }; +}; + +&i2c1 { + clock-frequency = <400000>; +}; + +&i2c2 { + clock-frequency = <400000>; +}; + +&mmc1 { + cd-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* gpio_110 */ +}; + +&mmc2 { + status = "disabled"; +}; + +&mmc3 { + status = "disabled"; +}; \ No newline at end of file

Logic PD AM37/DM37 has used the generic omap3_logic files, but with all the device tree entries, pinctrl and DM now integrated, this patch splits the AM/DM37 SOM-LV into its own board so it can make use of all the pins and hardware correctly.
Signed-off-by: Adam Ford aford173@gmail.com
diff --git a/configs/omap36_logic_somlv_defconfig b/configs/omap36_logic_somlv_defconfig new file mode 100644 index 0000000000..1d50edb544 --- /dev/null +++ b/configs/omap36_logic_somlv_defconfig @@ -0,0 +1,74 @@ +CONFIG_ARM=y +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_TI_COMMON_CMD_OPTIONS=y +# CONFIG_SPL_GPIO_SUPPORT is not set +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_TARGET_OMAP3_LOGIC=y +# CONFIG_SPL_OMAP3_ID_NAND is not set +CONFIG_SPL=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_NR_DRAM_BANKS=2 +# CONFIG_USE_BOOTCOMMAND is not set +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_VERSION_VARIABLE=y +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_PROMPT="OMAP Logic # " +# CONFIG_CMD_IMI is not set +CONFIG_CMD_SPL=y +CONFIG_CMD_SPL_NAND_OFS=0x240000 +CONFIG_CMD_SPL_WRITE_SIZE=0x20000 +# CONFIG_CMD_EEPROM is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_LOCK_UNLOCK=y +CONFIG_CMD_CACHE=y +CONFIG_MTDIDS_DEFAULT="nand0=omap2-nand.0" +CONFIG_MTDPARTS_DEFAULT="mtdparts=omap2-nand.0:512k(MLO),1792k(u-boot),128k(spl-os),128k(u-boot-env),6m(kernel),-(fs)" +CONFIG_CMD_UBI=y +CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="logicpd-som-lv-37xx-devkit" +CONFIG_SPL_OF_PLATDATA=y +# CONFIG_ENV_IS_IN_FAT is not set +CONFIG_ENV_IS_IN_NAND=y +CONFIG_SPL_DM=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x82000000 +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_OMAP36XX_PINS=y +CONFIG_NAND=y +CONFIG_SYS_NAND_BUSWIDTH_16BIT=y +CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y +CONFIG_SYS_NAND_U_BOOT_OFFS=0x80000 +CONFIG_SPL_NAND_SIMPLE=y +CONFIG_SMC911X=y +CONFIG_SMC911X_BASE=0x08000000 +CONFIG_SMC911X_32_BIT=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_DM_PMIC=y +# CONFIG_SPL_PMIC_CHILDREN is not set +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_SPECIFY_CONSOLE_INDEX=y +CONFIG_SYS_NS16550=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_OMAP3_SPI=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_GADGET=y +CONFIG_USB_MUSB_OMAP2PLUS=y +CONFIG_TWL4030_USB=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="TI" +CONFIG_USB_GADGET_VENDOR_NUM=0x0451 +CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 +CONFIG_USB_ETHER=y +CONFIG_BCH=y +# CONFIG_SPL_OF_LIBFDT is not set

Logic PD OMAP35xx SOM-LV has used the generic omap3_logic files, but with all the device tree entries, pinctrl and DM now integrated, this patch splits the OMAP35 SOM-LV into its own board so it can make use of all the pins and hardware correctly.
Signed-off-by: Adam Ford aford173@gmail.com
diff --git a/arch/arm/dts/logicpd-som-lv-35xx-devkit-u-boot.dtsi b/arch/arm/dts/logicpd-som-lv-35xx-devkit-u-boot.dtsi new file mode 100644 index 0000000000..6acdf4dc3b --- /dev/null +++ b/arch/arm/dts/logicpd-som-lv-35xx-devkit-u-boot.dtsi @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2017 + * Logic PD - http://www.logicpd.com + */ +#include "omap3-u-boot.dtsi" + +/ { + model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit"; + + chosen { + stdout-path = &uart1; + }; +}; + +&i2c1 { + clock-frequency = <400000>; +}; + +&i2c2 { + clock-frequency = <400000>; +}; + +&mmc1 { + cd-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* gpio_110 */ +}; + +&mmc2 { + status = "disabled"; +}; + +&mmc3 { + status = "disabled"; +}; diff --git a/arch/arm/dts/logicpd-som-lv-35xx-devkit.dts b/arch/arm/dts/logicpd-som-lv-35xx-devkit.dts new file mode 100644 index 0000000000..4cd72b5e61 --- /dev/null +++ b/arch/arm/dts/logicpd-som-lv-35xx-devkit.dts @@ -0,0 +1,32 @@ +/* + * 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 "omap34xx.dtsi" +#include "logicpd-som-lv.dtsi" +#include "logicpd-som-lv-baseboard.dtsi" +#include "omap-gpmc-smsc9221.dtsi" + +/ { + model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit"; + compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3"; +}; + +&omap3_pmx_core2 { + pinctrl-names = "default"; + pinctrl-0 = <&hsusb2_2_pins>; + hsusb2_2_pins: pinmux_hsusb2_2_pins { + pinctrl-single,pins = < + OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ + OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ + OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ + OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ + OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ + OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ + >; + }; +}; diff --git a/configs/omap35_logic_somlv_defconfig b/configs/omap35_logic_somlv_defconfig new file mode 100644 index 0000000000..e002c23428 --- /dev/null +++ b/configs/omap35_logic_somlv_defconfig @@ -0,0 +1,74 @@ +CONFIG_ARM=y +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_TI_COMMON_CMD_OPTIONS=y +# CONFIG_SPL_GPIO_SUPPORT is not set +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_TARGET_OMAP3_LOGIC=y +# CONFIG_SPL_OMAP3_ID_NAND is not set +CONFIG_SPL=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_NR_DRAM_BANKS=2 +# CONFIG_USE_BOOTCOMMAND is not set +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_VERSION_VARIABLE=y +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_PROMPT="OMAP Logic # " +# CONFIG_CMD_IMI is not set +CONFIG_CMD_SPL=y +CONFIG_CMD_SPL_NAND_OFS=0x240000 +CONFIG_CMD_SPL_WRITE_SIZE=0x20000 +# CONFIG_CMD_EEPROM is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_LOCK_UNLOCK=y +CONFIG_CMD_CACHE=y +CONFIG_MTDIDS_DEFAULT="nand0=omap2-nand.0" +CONFIG_MTDPARTS_DEFAULT="mtdparts=omap2-nand.0:512k(MLO),1792k(u-boot),128k(spl-os),128k(u-boot-env),6m(kernel),-(fs)" +CONFIG_CMD_UBI=y +CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="logicpd-som-lv-35xx-devkit" +CONFIG_SPL_OF_PLATDATA=y +# CONFIG_ENV_IS_IN_FAT is not set +CONFIG_ENV_IS_IN_NAND=y +CONFIG_SPL_DM=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x82000000 +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_OMAP36XX_PINS=y +CONFIG_NAND=y +CONFIG_SYS_NAND_BUSWIDTH_16BIT=y +CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y +CONFIG_SYS_NAND_U_BOOT_OFFS=0x80000 +CONFIG_SPL_NAND_SIMPLE=y +CONFIG_SMC911X=y +CONFIG_SMC911X_BASE=0x08000000 +CONFIG_SMC911X_32_BIT=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_DM_PMIC=y +# CONFIG_SPL_PMIC_CHILDREN is not set +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_SPECIFY_CONSOLE_INDEX=y +CONFIG_SYS_NS16550=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_OMAP3_SPI=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_GADGET=y +CONFIG_USB_MUSB_OMAP2PLUS=y +CONFIG_TWL4030_USB=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="TI" +CONFIG_USB_GADGET_VENDOR_NUM=0x0451 +CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 +CONFIG_USB_ETHER=y +CONFIG_BCH=y +# CONFIG_SPL_OF_LIBFDT is not set

With there now being four device tree files, and 4 separate defconfig files, the code necessary to determine which board is being used is no longer necessary as the corresponding pin-muxing and board names are determined by the device tree.
Signed-off-by: Adam Ford aford173@gmail.com
diff --git a/board/logicpd/omap3som/omap3logic.c b/board/logicpd/omap3som/omap3logic.c index 620423bbc8..6054ed8739 100644 --- a/board/logicpd/omap3som/omap3logic.c +++ b/board/logicpd/omap3som/omap3logic.c @@ -70,40 +70,6 @@ U_BOOT_DEVICE(am335x_mmc0) = {
#endif
-/* - * two dimensional array of strucures containining board name and Linux - * machine IDs; row it selected based on CPU column is slected based - * on hsusb0_data5 pin having a pulldown resistor - */ -static struct board_id { - char *name; - int machine_id; - char *fdtfile; -} boards[2][2] = { - { - { - .name = "OMAP35xx SOM LV", - .machine_id = MACH_TYPE_OMAP3530_LV_SOM, - .fdtfile = "logicpd-som-lv-35xx-devkit.dtb", - }, - { - .name = "OMAP35xx Torpedo", - .machine_id = MACH_TYPE_OMAP3_TORPEDO, - .fdtfile = "logicpd-torpedo-35xx-devkit.dtb", - }, - }, - { - { - .name = "DM37xx SOM LV", - .fdtfile = "logicpd-som-lv-37xx-devkit.dtb", - }, - { - .name = "DM37xx Torpedo", - .fdtfile = "logicpd-torpedo-37xx-devkit.dtb", - }, - }, -}; - #ifdef CONFIG_SPL_OS_BOOT int spl_start_uboot(void) { @@ -226,7 +192,6 @@ int ehci_hcd_stop(int index)
#endif /* CONFIG_USB_EHCI_HCD */
- /* * Routine: misc_init_r * Description: Configure board specific parts @@ -243,11 +208,6 @@ int misc_init_r(void) return 0; }
-/* - * BOARD_ID_GPIO - GPIO of pin with optional pulldown resistor on SOM LV - */ -#define BOARD_ID_GPIO 189 /* hsusb0_data5 pin */ - /* * Routine: board_init * Description: Early hardware init. @@ -275,54 +235,6 @@ static void unlock_nand(void)
int board_late_init(void) { - struct board_id *board; - unsigned int val; - - /* - * To identify between a SOM LV and Torpedo module, - * a pulldown resistor is on hsusb0_data5 for the SOM LV module. - * Drive the pin (and let it soak), then read it back. - * If the pin is still high its a Torpedo. If low its a SOM LV - */ - - /* Mux hsusb0_data5 as a GPIO */ - MUX_VAL(CP(HSUSB0_DATA5), (IEN | PTD | DIS | M4)); - - if (gpio_request(BOARD_ID_GPIO, "husb0_data5.gpio_189") == 0) { - - /* - * Drive BOARD_ID_GPIO - the pulldown resistor on the SOM LV - * will drain the voltage. - */ - gpio_direction_output(BOARD_ID_GPIO, 0); - gpio_set_value(BOARD_ID_GPIO, 1); - - /* Let it soak for a bit */ - sdelay(0x100); - - /* - * Read state of BOARD_ID_GPIO as an input and if its set. - * If so the board is a Torpedo - */ - gpio_direction_input(BOARD_ID_GPIO); - val = gpio_get_value(BOARD_ID_GPIO); - gpio_free(BOARD_ID_GPIO); - - board = &boards[!!(get_cpu_family() == CPU_OMAP36XX)][!!val]; - printf("Board: %s\n", board->name); - - /* Set the machine_id passed to Linux */ - if (board->machine_id) - gd->bd->bi_arch_number = board->machine_id; - - /* If the user has not set fdtimage, set the default */ - if (!env_get("fdtimage")) - env_set("fdtimage", board->fdtfile); - } - - /* restore hsusb0_data5 pin as hsusb0_data5 */ - MUX_VAL(CP(HSUSB0_DATA5), (IEN | PTD | DIS | M0)); - #ifdef CONFIG_CMD_NAND_LOCK_UNLOCK unlock_nand(); #endif @@ -363,5 +275,3 @@ int board_eth_init(bd_t *bis) return smc911x_initialize(0, CONFIG_SMC911X_BASE); } #endif - - diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h index 2cbdbebb26..8644e16830 100644 --- a/include/configs/omap3_logic.h +++ b/include/configs/omap3_logic.h @@ -116,6 +116,7 @@ "ip=${ipaddr}:${tftpserver}:${gatewayip}:${netmask}::eth0:off\0" \ "nfsrootpath=/opt/nfs-exports/omap\0" \ "autoload=no\0" \ + "fdtimage=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "loadfdt=mmc rescan; " \ "load mmc ${mmcdev} ${fdtaddr} ${fdtimage}\0" \ "mmcbootcommon=echo Booting with DT from mmc${mmcdev} ...; " \
participants (1)
-
Adam Ford