Device tree and uart baud rate question

Hi there,
we got the mixtile 3588E Som to replace our TX2 NX from Australia.
we want get camera working.
I can build and run 22.04 image now. but there are two problems I am facing

  1. device tree, I am not quite sure how and where is the device is built and load to Som, there are lots of dtb files in /lib/firmware/5.x/device-tree/rockchip/ , but I am not sure which one is used and how it build. we need support techpoint camera card.
  2. when I connect the uart console, I do see something come out, but not readable, so may I know the usart console setting like baud rate?
    thanks

Hi,

Thanks for reaching out, and welcome to the Mixtile Core3588E platform!

Let me help you with your questions:


1. Device Tree

The device tree used by default is:

/lib/firmware/5.x/device-tree/rockchip/rk3588-mixtile-core3588e.dtb

This DTB file corresponds to the Mixtile Core3588E SoM and is selected during boot by the bootloader. If you’re building a custom kernel or modifying the device tree, make sure your changes are applied to this file.


2. UART Console Settings

The default UART console settings for the Mixtile Core3588E are:

  • Baud rate: 1500000 (1.5 Mbps)
  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: None

Make sure your serial terminal (e.g., minicom, picocom, or PuTTY) is configured to use 1500000 baud to read the console output correctly.


Let us know if you need assistance modifying the device tree or integrating your camera module — we’d be happy to help.

@Kevin , thanks for the info, I got the uart working and now start to prepare device tree.
The scenario is I want get camera working, and we put 3588E to same carrier board which is with TX2 NX.
we use techpoint TP2854 IC for camera process.
I do find rockchip provides techpoint driver for TP2855 etc, so there are two questions

  1. how to config and use the techpoint driver like modprobe etc, driver is here linux-rockchip/drivers/media/i2c/techpoint at noble · mixtile-rockchip/linux-rockchip · GitHub
  2. I have a working TX2 NX techpoint device tree, but found mixtile one is very different. May I know if any reference sample of camera device tree for mixtile. here is one for tx2 nx we are using.
i2c@3180000 {
			clock-frequency = <400000>;
			status = "okay";
			tp2854_a@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_b@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_c@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_d@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_e@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_f@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_g@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};
			tp2854_h@44 {
				clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>,
						<&bpmp TEGRA234_CLK_PLLP_OUT0>; 
				clock-names = "extperiph1", "pllp_grtba";
				mclk = "extperiph1";
				clock-frequency = <24000000>;	
				vif-supply = <&vdd_1v8_slot1>;
			};

		};

In your debian.rockchip/config/config.common.ubuntu file, add:

CONFIG_VIDEO_TECHPOINT=y

For the device-tree setup, please follow the guidelines below and adjust the pin assignments to match your schematic.

* techpoint,tpxxxx Decoder

Required Properties:
- compatible: should be "techpoint,tpxxxx"
- clocks: reference to the 27M xvclk input clock.
- clock-names: should be "xvclk".
- dovdd-supply: Digital I/O voltage supply, 1.8 volts
- avdd-supply: Analog voltage supply, 3.3 volts
- dvdd-supply: Digital core voltage supply, 1.2 volts
- reset-gpios: Low active reset gpio
- pwdn-gpios: High active power-down gpio

Attention:
techpoint device address (7bit)
techpoint + evb reuse the power bus

Example:
&i2c1 {
	status = "okay";

	// BT1120
	tp9930: tp9930@45 {
		compatible = "techpoint,tp9930";
		reg = <0x45>;
		clocks = <&cru CLK_MIPICSI_OUT>;
		clock-names = "xvclk";
		avdd-supply = <&vcc_avdd>;
		dovdd-supply = <&vcc_dovdd>;
		dvdd-supply = <&vcc_dvdd>;
		power-domains = <&power RV1126_PD_VI>;
		pinctrl-names = "rockchip,camera_default";
		pinctrl-0 = <&mipicsi_clk0 &cifm0_bt1120_ctl>;
		rockchip,grf = <&grf>;
		reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>;
		power-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "default";
		rockchip,camera-module-lens-name = "default";
		port {
			cam_para_out1: endpoint {
				remote-endpoint = <&cif_para_in>;
				bus-width = <16>;
				pclk-sample = <1>;
			};
		};
	};

	// MIPI
	tp2855: tp2855@44 {
		compatible = "techpoint,tp2855";
		reg = <0x44>;
		clocks = <&cru CLK_MIPICSI_OUT>;
		clock-names = "xvclk";
		avdd-supply = <&vcc_avdd>;
		dovdd-supply = <&vcc_dovdd>;
		dvdd-supply = <&vcc_dvdd>;
		power-domains = <&power RV1126_PD_VI>;
		pinctrl-names = "rockchip,camera_default";
		pinctrl-0 = <&mipicsi_clk0>;
		reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>;
		power-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
		rockchip,camera-module-index = <1>;
		rockchip,camera-module-facing = "front";
		rockchip,camera-module-name = "tp2855";
		rockchip,camera-module-lens-name = "tp2855";

		port {
			ucam_out0: endpoint {
				remote-endpoint = <&mipi_in_ucam0>;
				data-lanes = <1 2 3 4>;
			};
		};
	};
};