From b8005a72767d147db50ac02af922663391832af5 Mon Sep 17 00:00:00 2001 From: Yilin Sun Date: Tue, 16 Apr 2024 13:36:18 +0800 Subject: [PATCH] Added config and patches for T113-miniEVM. Signed-off-by: Yilin Sun --- .../board/t113i-minievm/linux.fragment | 14 + .../sun8i-t113i-tronlong-tlt113-minievm.dts | 322 ++++++++++++++++++ .../configs/tlt113_minievm_defconfig | 78 +++++ external_tree/patches/kernel/foresee.patch | 15 + 4 files changed, 429 insertions(+) create mode 100644 external_tree/board/t113i-minievm/linux.fragment create mode 100644 external_tree/board/t113i-minievm/sun8i-t113i-tronlong-tlt113-minievm.dts create mode 100644 external_tree/configs/tlt113_minievm_defconfig create mode 100644 external_tree/patches/kernel/foresee.patch diff --git a/external_tree/board/t113i-minievm/linux.fragment b/external_tree/board/t113i-minievm/linux.fragment new file mode 100644 index 0000000..a6f9e17 --- /dev/null +++ b/external_tree/board/t113i-minievm/linux.fragment @@ -0,0 +1,14 @@ +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_MTD=y +CONFIG_MTD_UBI=y +CONFIG_MTD_SPI_NAND=y +CONFIG_UBIFS_FS=y +CONFIG_MOTORCOMM_PHY=y +CONFIG_TYPEC=y +CONFIG_TYPEC_WUSB3801=y +CONFIG_DRM_LONTIUM_LT8912B=y +CONFIG_USB_ACM=y +CONFIG_USB_SERIAL=y +CONFIG_USB_SERIAL_FTDI_SIO=y +CONFIG_USB_SERIAL_CP210X=y +CONFIG_SYSVIPC=y diff --git a/external_tree/board/t113i-minievm/sun8i-t113i-tronlong-tlt113-minievm.dts b/external_tree/board/t113i-minievm/sun8i-t113i-tronlong-tlt113-minievm.dts new file mode 100644 index 0000000..fed40a1 --- /dev/null +++ b/external_tree/board/t113i-minievm/sun8i-t113i-tronlong-tlt113-minievm.dts @@ -0,0 +1,322 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (C) 2022 Arm Ltd. +/* + * Common peripherals and configurations for MangoPi MQ-R boards. + */ + +#include +#include + +/dts-v1/; + +#include + +/ { + model = "Tronlong TLT113-MiniEVM"; + compatible = "tronlong,tlt113-minievm", "allwinner,sun8i-t113i"; + + aliases { + serial2 = &uart2; + }; + + chosen { + stdout-path = "serial2:115200n8"; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 2 0 GPIO_ACTIVE_HIGH>; /* PC0 */ + linux,default-trigger = "heartbeat"; + }; + + led-1 { + color = ; + function = LED_FUNCTION_DISK; + gpios = <&pio 2 1 GPIO_ACTIVE_HIGH>; /* PC1 */ + linux,default-trigger = "mtd"; + }; + + led-2 { + color = ; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ + linux,default-trigger = "default-on"; + }; + + }; + + hdmi-connector { + compatible = "hdmi-connector"; + ddc-i2c-bus = <&i2c0>; + label = "hdmi"; + type = "a"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&bridge_hdmi_out>; + }; + }; + }; + + /* EC2232E DC/DC regulator on SoM */ + reg_vcc5v: regulator-5v { + compatible = "regulator-fixed"; + regulator-name = "vcc-5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + }; + + /* EC2232E DC/DC regulator on SoM */ + reg_3v3: regulator-3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <®_vcc5v>; + }; + + /* EC2232E DC/DC regulator on SoM, also supplying VDD-SYS */ + reg_vcc_core: regulator-core { + compatible = "regulator-fixed"; + regulator-name = "vcc-core"; + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <880000>; + vin-supply = <®_vcc5v>; + }; + + reg_vbus_supply: regulator-vbus-otg { + compatible = "regulator-fixed"; + regulator-name = "vbus-otg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&pio 1 12 GPIO_ACTIVE_HIGH>; + vin-supply = <®_vcc5v>; + }; +}; + +&cpu0 { + cpu-supply = <®_vcc_core>; +}; + +&cpu1 { + cpu-supply = <®_vcc_core>; +}; + +&wdt { + status = "okay"; +}; + +&dcxo { + clock-frequency = <24000000>; +}; + +&ehci1 { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&pio { + vcc-pb-supply = <®_3v3>; + vcc-pd-supply = <®_3v3>; + vcc-pe-supply = <®_3v3>; + vcc-pf-supply = <®_3v3>; + vcc-pg-supply = <®_3v3>; + + uart2_pg_pins: uart2-pg-pins { + pins = "PG17", "PG18"; + function = "uart2"; + }; + + rgmii_pg_pins: rgmii-pg-pins { + pins = "PG0", "PG1", "PG2", "PG3", "PG4", + "PG5", "PG6", "PG7", "PG8", "PG9", + "PG10", "PG12", "PG14", "PG15"; + function = "emac"; + }; + + i2c0_pins: i2c0-pins { + pins = "PB10", "PB11"; + function = "i2c0"; + }; + + i2c2_pins: i2c2-pins { + pins = "PE12", "PE13"; + function = "i2c2"; + }; + + spi0_misc_pins: spi0-misc-pins { + pins = "PC6", "PC7"; + function = "spi0"; + }; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&uart2_pg_pins>; + status = "okay"; +}; + +&mmc0 { + pinctrl-0 = <&mmc0_pins>; + pinctrl-names = "default"; + vmmc-supply = <®_3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; + disable-wp; + bus-width = <4>; + status = "okay"; +}; + +&emac { + pinctrl-0 = <&rgmii_pg_pins>; + pinctrl-names = "default"; + status = "okay"; + phy-handle = <&ephy>; + phy-mode = "rgmii-id"; + allwinner,tx-delay-ps = <200>; + allwinner,rx-delay-ps = <0>; + phy-supply = <®_3v3>; +}; + +&mdio { + ephy: ethernet-phy@0 { + reg = <0>; + reset-gpios = <&pio 6 13 GPIO_ACTIVE_LOW>; /* PG13 */ + rx-internal-delay-ps = <600>; + tx-internal-delay-ps = <450>; + reset-assert-us = <10000>; + reset-deassert-us = <1000000>; + }; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + status = "okay"; +}; + +&i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pins>; + status = "okay"; + + hdmi_lontium_lt8912: hdmi@48 { + compatible = "lontium,lt8912b"; + reg = <0x48>; + reset-gpios = <&pio 4 11 GPIO_ACTIVE_LOW>; /* PE11 */ + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + bridge_dsi_in: endpoint { + data-lanes = <0 1 2 3>; + remote-endpoint = <&host_dsi_out>; + }; + }; + + port@1 { + reg = <1>; + bridge_hdmi_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; + }; + }; + }; + tcpc@60 { + compatible = "willsemi,wusb3801"; + reg = <0x60>; + interrupt-parent = <&pio>; + interrupts = <4 3 IRQ_TYPE_LEVEL_LOW>; /* PE3 */ + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + vbus-supply = <®_vbus_supply>; + power-role = "source"; + data-role = "dual"; + typec-power-opmode = "default"; + pd-disable; + }; + }; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins &spi0_misc_pins>; + status = "okay"; + + spi_nand@0 { + compatible = "spi-nand"; + reg = <0>; + spi-max-frequency = <80000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + partitions { + #address-cells = <1>; + #size-cells = <1>; + + compatible = "fixed-partitions"; + partition@0 { + label = "u-boot"; + reg = <0x0 0x100000>; /* 1MB */ + }; + + partition@100000 { + label = "env"; + reg = <0x100000 0x400000>; /* 4MB */ + }; + + partition@500000 { + label = "rootfs"; + reg = <0x500000 0xfb00000>; /* 251MB */ + }; + }; + }; +}; + +&dsi { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port { + host_dsi_out: endpoint { + remote-endpoint = <&bridge_dsi_in>; + }; + }; + }; +}; + +&dphy { + status = "okay"; +}; + +&tcon_top { + status = "okay"; +}; + +&tcon_lcd0 { + status = "okay"; +}; + +&usb_otg { + dr_mode = "peripheral"; + status = "okay"; +}; + +&usbphy { + usb1_vbus-supply = <®_vcc5v>; + status = "okay"; +}; diff --git a/external_tree/configs/tlt113_minievm_defconfig b/external_tree/configs/tlt113_minievm_defconfig new file mode 100644 index 0000000..4561fd6 --- /dev/null +++ b/external_tree/configs/tlt113_minievm_defconfig @@ -0,0 +1,78 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_BINUTILS_VERSION_2_41_X=y +BR2_GCC_VERSION_13_X=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_PACKAGE_HOST_GDB=y +BR2_PACKAGE_HOST_GDB_TUI=y +BR2_TARGET_GENERIC_HOSTNAME="pudding-lwgw-t113i" +BR2_TARGET_GENERIC_ISSUE="What GW?" +BR2_INIT_SYSTEMD=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set +BR2_SYSTEM_BIN_SH_BASH=y +BR2_SYSTEM_DHCP="eth0" +BR2_GENERATE_LOCALE="en_US.UTF-8" +BR2_TARGET_LOCALTIME="Asia/Shanghai" +BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_lwgw_PATH)/customizations/users.table" +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_lwgw_PATH)/customizations/overlay" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/torvalds/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="de927f6c0b07d9e698416c5b287c521b07694cac" +BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_lwgw_PATH)/patches/kernel" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_lwgw_PATH)/board/t113i-minievm/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_lwgw_PATH)/board/t113i-minievm/sun8i-t113i-tronlong-tlt113-minievm.dts" +BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_GPSD=y +BR2_PACKAGE_GPSD_USER=y +BR2_PACKAGE_GPSD_USER_VALUE="gpsd" +BR2_PACKAGE_GPSD_GROUP=y +BR2_PACKAGE_GPSD_GROUP_VALUE="gpsd" +BR2_PACKAGE_GPSD_ASHTECH=y +BR2_PACKAGE_GPSD_EARTHMATE=y +BR2_PACKAGE_GPSD_EVERMORE=y +BR2_PACKAGE_GPSD_FURY=y +BR2_PACKAGE_GPSD_FV18=y +BR2_PACKAGE_GPSD_GARMIN=y +BR2_PACKAGE_GPSD_GARMIN_SIMPLE_TXT=y +BR2_PACKAGE_GPSD_GEOSTAR=y +BR2_PACKAGE_GPSD_GPSCLOCK=y +BR2_PACKAGE_GPSD_GREIS=y +BR2_PACKAGE_GPSD_ISYNC=y +BR2_PACKAGE_GPSD_ITRAX=y +BR2_PACKAGE_GPSD_NMEA2000=y +BR2_PACKAGE_GPSD_OCEANSERVER=y +BR2_PACKAGE_GPSD_ONCORE=y +BR2_PACKAGE_GPSD_RTCM104V2=y +BR2_PACKAGE_GPSD_RTCM104V3=y +BR2_PACKAGE_GPSD_SIRF=y +BR2_PACKAGE_GPSD_SKYTRAQ=y +BR2_PACKAGE_GPSD_SUPERSTAR2=y +BR2_PACKAGE_GPSD_TRIMBLE_TSIP=y +BR2_PACKAGE_GPSD_TRIPMATE=y +BR2_PACKAGE_GPSD_TRUE_NORTH=y +BR2_PACKAGE_GPSD_UBX=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_MDIO_TOOLS=y +BR2_PACKAGE_PPS_TOOLS=y +BR2_PACKAGE_SYSSTAT=y +BR2_PACKAGE_LIBCONFIG=y +BR2_PACKAGE_CHRONY=y +BR2_PACKAGE_IPERF3=y +BR2_PACKAGE_MOSQUITTO=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_SUDO=y +BR2_PACKAGE_HTOP=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="128M" +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1F000 +BR2_TARGET_ROOTFS_UBIFS_OPTS="-F" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_KMOD_XZ=y diff --git a/external_tree/patches/kernel/foresee.patch b/external_tree/patches/kernel/foresee.patch new file mode 100644 index 0000000..bd72009 --- /dev/null +++ b/external_tree/patches/kernel/foresee.patch @@ -0,0 +1,15 @@ +diff --git a/drivers/mtd/nand/spi/foresee.c b/drivers/mtd/nand/spi/foresee.c +index e0d2d9257045..05b27341b9bd 100644 +--- a/drivers/mtd/nand/spi/foresee.c ++++ b/drivers/mtd/nand/spi/foresee.c +@@ -22,8 +22,8 @@ static SPINAND_OP_VARIANTS(write_cache_variants, + SPINAND_PROG_LOAD(true, 0, NULL, 0)); + + static SPINAND_OP_VARIANTS(update_cache_variants, +- SPINAND_PROG_LOAD_X4(false, 0, NULL, 0), +- SPINAND_PROG_LOAD(false, 0, NULL, 0)); ++ SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), ++ SPINAND_PROG_LOAD(true, 0, NULL, 0)); + + static int f35sqa002g_ooblayout_ecc(struct mtd_info *mtd, int section, + struct mtd_oob_region *region)