bosch: Add initial board support for ACC

The Bosch ACC (Air Center Control) Board is based on the i.MX6D.

The device tree is copied from Linux, see [1]. The only difference
compared to the Linux DT is the removal of usbphynop properties. They are
defined in the Linux version of imx6qdl.dtsi, but not in the u-boot
version.

[1] Commit 6192cf8ac082 from
    git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git

Signed-off-by: Philip Oberfichtner <pro@denx.de>
diff --git a/include/configs/imx6q-bosch-acc.h b/include/configs/imx6q-bosch-acc.h
new file mode 100644
index 0000000..6d36255
--- /dev/null
+++ b/include/configs/imx6q-bosch-acc.h
@@ -0,0 +1,122 @@
+/* SPDX-License-Identifier: GPL-2.0+
+ *
+ * Copyright (c) 2017 DENX Software Engineering GmbH, Heiko Schocher <hs@denx.de>
+ * Copyright (c) 2019 Bosch Thermotechnik GmbH
+ * Copyright (c) 2022 DENX Software Engineering GmbH, Philip Oberfichtner <pro@denx.de>
+ */
+
+#ifndef __IMX6Q_ACC_H
+#define __IMX6Q_ACC_H
+
+#include <linux/sizes.h>
+#include "mx6_common.h"
+
+#ifdef CONFIG_SYS_BOOT_EMMC
+#define MMC_ROOTFS_DEV 0
+#define MMC_ROOTFS_PART 2
+#endif
+
+#ifdef CONFIG_SYS_BOOT_EMMC
+/* eMMC Boot */
+#define ENV_EXTRA \
+	"mmcdev=" __stringify(MMC_ROOTFS_DEV) "\0" \
+	"mmcpart=" __stringify(MMC_ROOTFS_PART) "\0" \
+	"fitpart=1\0" \
+	"optargs=ro quiet systemd.gpt_auto=false\0" \
+	"production=1\0" \
+	"mmcautodetect=yes\0" \
+	"mmcrootfstype=ext4\0" \
+	"finduuid=part uuid mmc ${mmcdev}:${mmcpart} uuid\0" \
+	"mmcargs=run finduuid; setenv bootargs " \
+		"root=PARTUUID=${uuid} ${optargs} rootfstype=${mmcrootfstype}\0" \
+	"mmc_mmc_fit=run env_persist; run setbm; run mmcloadfit; " \
+		"run auth_fit_or_reset; run mmcargs addcon; " \
+		"bootm ${fit_addr}#${bootconf}\0" \
+	"bootset=0\0" \
+	"setbm=if test ${bootset} -eq 1; " \
+		"then setenv mmcpart 4; setenv fitpart 3; " \
+		"else; setenv mmcpart 2; setenv fitpart 1; fi\0" \
+	"handle_ustate=if test ${ustate} -eq 2; then setenv ustate 3; fi\0" \
+	"switch_bootset=if test ${bootset} -eq 1; then setenv bootset 0; " \
+		"else; setenv bootset 1;fi\0" \
+	"env_persisted=0\0" \
+	"env_persist=if test ${env_persisted} != 1; " \
+		"then env set env_persisted 1; run save_env; fi;\0" \
+	"save_env=env save; env save\0" \
+	"altbootcmd=run handle_ustate; run switch_bootset; run save_env; run bootcmd\0"
+
+#define CONFIG_ENV_FLAGS_LIST_STATIC \
+	"bootset:bw," \
+	"clone_pending:bw," \
+	"endurance_test:bw," \
+	"env_persisted:bw," \
+	"factory_reset:bw," \
+	"fdtcontroladdr:xw," \
+	"fitpart:dw," \
+	"mmcpart:dw," \
+	"production:bw," \
+	"ustate:dw"
+
+#else
+/* SD Card boot */
+#define ENV_EXTRA \
+	"mmcdev=1\0" \
+	"fitpart=1\0" \
+	"rootpart=2\0" \
+	"optargs=ro systemd.gpt_auto=false\0" \
+	"finduuid=part uuid mmc ${mmcdev}:${rootpart} uuid\0" \
+	"mmcargs=run finduuid;setenv bootargs root=PARTUUID=${uuid} ${optargs}\0" \
+	"mmc_mmc_fit=run mmcloadfit; run auth_fit_or_reset; run mmcargs addcon; " \
+		"bootm ${fit_addr}#${bootconf}\0"
+
+#endif
+
+/* Default environment */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"bootconf=conf-imx6q-bosch-acc.dtb\0"\
+	"mmcfit_name=fitImage\0" \
+	"mmcloadfit=ext4load mmc ${mmcdev}:${fitpart} ${fit_addr} ${mmcfit_name}\0" \
+	"auth_fit_or_reset=hab_auth_img ${fit_addr} ${filesize} || reset\0" \
+	"console=ttymxc0\0" \
+	"addcon=setenv bootargs ${bootargs} console=${console},${baudrate}\0" \
+	"fit_addr=19000000\0" \
+	ENV_EXTRA
+
+/* Physical Memory Map */
+#define PHYS_SDRAM                      MMDC0_ARB_BASE_ADDR
+
+#define CONFIG_SYS_SDRAM_BASE           PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR        IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE        IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET       (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+/* SPL */
+#ifdef CONFIG_SPL
+#include "imx6_spl.h"
+
+#ifdef CONFIG_SPL_BUILD
+#define CONFIG_SYS_FSL_USDHC_NUM 2
+
+#ifdef CONFIG_SYS_BOOT_EMMC
+
+/* Boot from eMMC */
+#define CONFIG_SYS_FSL_ESDHC_ADDR 1
+
+#else
+
+/* Boot from SD-card */
+#  define CONFIG_SYS_FSL_ESDHC_ADDR	0
+
+#endif
+
+#endif
+#endif
+
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
+#define CONFIG_MXC_USB_PORTSC            (PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS             0
+#define CONFIG_USB_MAX_CONTROLLER_COUNT  1	/* Enabled USB controller number */
+
+#endif /* __IMX6Q_ACC_H */