Jump to content

    

Промышленный компьютер тион-про28

LCD у нас 16 бит RGB666 ссылка плюс тачь. Залез в /home/alexey/work/linux/arch/arm/boot/dts/imx28-evk.dts (ни чего не трогал)

Spoiler

// SPDX-License-Identifier: GPL-2.0+
//
// Copyright 2012 Freescale Semiconductor, Inc.

/dts-v1/;
#include "imx28.dtsi"

/ {
	model = "Freescale i.MX28 Evaluation Kit";
	compatible = "fsl,imx28-evk", "fsl,imx28";

	memory@40000000 {
		reg = <0x40000000 0x08000000>;
	};


	reg_3p3v: regulator-3p3v {
		compatible = "regulator-fixed";
		regulator-name = "3P3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_vddio_sd0: regulator-vddio-sd0 {
		compatible = "regulator-fixed";
		regulator-name = "vddio-sd0";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio3 28 0>;
	};

	reg_fec_3v3: regulator-fec-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "fec-3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio2 15 0>;
	};

	reg_usb0_vbus: regulator-usb0-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb0_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio3 9 0>;
		enable-active-high;
	};

	reg_usb1_vbus: regulator-usb1-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb1_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio3 8 0>;
		enable-active-high;
	};

	reg_lcd_3v3: regulator-lcd-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "lcd-3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio3 30 0>;
		enable-active-high;
	};

	reg_can_3v3: regulator-can-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "can-3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio2 13 0>;
		enable-active-high;
	};

	reg_lcd_5v: regulator-lcd-5v {
		compatible = "regulator-fixed";
		regulator-name = "lcd-5v";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	panel {
		compatible = "sii,43wvf1g";
		backlight = <&backlight_display>;
		dvdd-supply = <&reg_lcd_3v3>;
		avdd-supply = <&reg_lcd_5v>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&display_out>;
			};
		};
	};

	apb@80000000 {
		apbh@80000000 {
			gpmi-nand@8000c000 {
				pinctrl-names = "default";
				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg
					     &gpmi_pins_evk>;
				status = "okay";
			};

			ssp0: ssp@80010000 {
				compatible = "fsl,imx28-mmc";
				pinctrl-names = "default";
				pinctrl-0 = <&mmc0_8bit_pins_a
					&mmc0_cd_cfg &mmc0_sck_cfg>;
				bus-width = <8>;
				//wp-gpios = <&gpio2 12 0>;
				vmmc-supply = <&reg_vddio_sd0>;
				status = "okay";
			};

			ssp1: ssp@80012000 {
				compatible = "fsl,imx28-mmc";
				bus-width = <8>;
				wp-gpios = <&gpio0 28 0>;
			};

			ssp2: ssp@80014000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx28-spi";
				pinctrl-names = "default";
				pinctrl-0 = <&spi2_pins_a>;
				status = "okay";

				flash: m25p80@0 {
					#address-cells = <1>;
					#size-cells = <1>;
					compatible = "sst,sst25vf016b", "jedec,spi-nor";
					spi-max-frequency = <40000000>;
					reg = <0>;
				};
			};

			pinctrl@80018000 {
				pinctrl-names = "default";
				pinctrl-0 = <&hog_pins_a>;

				hog_pins_a: hog@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_SSP1_CMD__GPIO_2_13
						MX28_PAD_SSP1_DATA3__GPIO_2_15
						MX28_PAD_ENET0_RX_CLK__GPIO_4_13
						MX28_PAD_SSP1_SCK__GPIO_2_12
						MX28_PAD_PWM3__GPIO_3_28
						MX28_PAD_LCD_RESET__GPIO_3_30
						MX28_PAD_AUART2_RX__GPIO_3_8
						MX28_PAD_AUART2_TX__GPIO_3_9
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

				led_pin_gpio3_5: led_gpio3_5@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_AUART1_TX__GPIO_3_5
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

				gpmi_pins_evk: gpmi-nand-evk@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_GPMI_CE1N__GPMI_CE1N
						MX28_PAD_GPMI_RDY1__GPMI_READY1
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

				lcdif_pins_evk: lcdif-evk@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_LCD_RD_E__LCD_VSYNC
						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
						MX28_PAD_LCD_RS__LCD_DOTCLK
						MX28_PAD_LCD_CS__LCD_ENABLE
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};
			};

			lcdif@80030000 {
				pinctrl-names = "default";
				pinctrl-0 = <&lcdif_24bit_pins_a
					     &lcdif_pins_evk>;
				status = "okay";

				port {
					display_out: endpoint {
						remote-endpoint = <&panel_in>;
					};
				};
			};

			can0: can@80032000 {
				pinctrl-names = "default";
				pinctrl-0 = <&can0_pins_a>;
				xceiver-supply = <&reg_can_3v3>;
				status = "okay";
			};

			can1: can@80034000 {
				pinctrl-names = "default";
				pinctrl-0 = <&can1_pins_a>;
				xceiver-supply = <&reg_can_3v3>;
				status = "okay";
			};
		};

		apbx@80040000 {
			saif0: saif@80042000 {
				pinctrl-names = "default";
				pinctrl-0 = <&saif0_pins_a>;
				status = "okay";
			};

			saif1: saif@80046000 {
				pinctrl-names = "default";
				pinctrl-0 = <&saif1_pins_a>;
				fsl,saif-master = <&saif0>;
				status = "okay";
			};

			lradc@80050000 {
				status = "okay";
				fsl,lradc-touchscreen-wires = <4>;
				fsl,ave-ctrl = <4>;
				fsl,ave-delay = <2>;
				fsl,settling = <10>;
			};

			i2c0: i2c@80058000 {
				pinctrl-names = "default";
				pinctrl-0 = <&i2c0_pins_a>;
				status = "okay";

				sgtl5000: codec@a {
					compatible = "fsl,sgtl5000";
					reg = <0x0a>;
					#sound-dai-cells = <0>;
					VDDA-supply = <&reg_3p3v>;
					VDDIO-supply = <&reg_3p3v>;
					clocks = <&saif0>;
				};

				at24@51 {
					compatible = "atmel,24c32";
					pagesize = <32>;
					reg = <0x51>;
				};
			};

			pwm: pwm@80064000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pwm2_pins_a>;
				status = "okay";
			};

			duart: serial@80074000 {
				pinctrl-names = "default";
				pinctrl-0 = <&duart_pins_a>;
				status = "okay";
			};

			auart0: serial@8006a000 {
				pinctrl-names = "default";
				pinctrl-0 = <&auart0_pins_a>;
				uart-has-rtscts;
				status = "okay";
			};

			auart3: serial@80070000 {
				pinctrl-names = "default";
				pinctrl-0 = <&auart3_pins_a>;
				status = "okay";
			};

			usbphy0: usbphy@8007c000 {
				status = "okay";
			};

			usbphy1: usbphy@8007e000 {
				status = "okay";
			};
		};
	};

	ahb@80080000 {
		usb0: usb@80080000 {
			pinctrl-names = "default";
			pinctrl-0 = <&usb0_id_pins_a>;
			vbus-supply = <&reg_usb0_vbus>;
			status = "okay";
		};

		usb1: usb@80090000 {
			vbus-supply = <&reg_usb1_vbus>;
			status = "okay";
		};

		mac0: ethernet@800f0000 {
			phy-mode = "rmii";
			pinctrl-names = "default";
			pinctrl-0 = <&mac0_pins_a>;
			phy-supply = <&reg_fec_3v3>;
			phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
			phy-reset-duration = <100>;
			status = "okay";
		};

		mac1: ethernet@800f4000 {
			phy-mode = "rmii";
			pinctrl-names = "default";
			pinctrl-0 = <&mac1_pins_a>;
			status = "okay";
		};
	};

	sound {
		compatible = "fsl,imx28-evk-sgtl5000",
			     "fsl,mxs-audio-sgtl5000";
		model = "imx28-evk-sgtl5000";
		saif-controllers = <&saif0 &saif1>;
		audio-codec = <&sgtl5000>;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&led_pin_gpio3_5>;

		user {
			label = "Heartbeat";
			gpios = <&gpio3 5 0>;
			linux,default-trigger = "heartbeat";
		};
	};

	backlight_display: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 2 5000000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
	};
};

 

и не увидал RGB666 16 бит. И не понял где находятся драйвер для lcd. 

Share this post


Link to post
Share on other sites

Драйвер lcd находится в linux/drivers/gpu/drm/mxsfb.

Но пока советую обратить внимание на этот раздел:

	panel {
		compatible = "sii,43wvf1g";

В linux/drivers/gpu/drm/panel/panel-simple.c находятся описания LCD-панелей. Найдите совместимую, и замените значение compatible в dts.

Share this post


Link to post
Share on other sites

После собрать командой .../buildroot$ make linux-rebuild ? А как быть с тачскрином ? 

Edited by Alex_Golubev

Share this post


Link to post
Share on other sites
19 minutes ago, Alex_Golubev said:

После собрать командой .../buildroot$ make linux-rebuild ? А как быть с тачскрином ?

Да, и убедитесь, что imx28-evk.dtb обновился.

 

Для тачскрина добавьте в конце dts:

&lradc {        
    fsl,lradc-touchscreen-wires = <4>;
    status = "okay";
};

Share this post


Link to post
Share on other sites
Quote

Да, и убедитесь, что imx28-evk.dtb обновился.

Это как просто изменить, сохранить, после открыть и проверить? 

Вот нашел близкий дисплей et057090dhu но у него распиновка не та. 

Share this post


Link to post
Share on other sites
2 minutes ago, Alex_Golubev said:

Это как просто изменить, сохранить, после открыть и проверить?

Просто дату/время по ls -l посмотреть, или упоминание во время сборки.

 

2 minutes ago, Alex_Golubev said:

Вот нашел близкий дисплей et057090dhu но у него распиновка не та.

Совпадать должно только разрешение, тайминги и полярности.

Share this post


Link to post
Share on other sites

Я вот недавно столкнулся с проблемой, просто интересно почему так.

Клонировал ядро линукса

Spoiler

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --branch=v4.19 --depth=1

 

после выполняю команду

Spoiler

make ARCH=arm mxs_defconfig

 

И получаю ошибку:

Spoiler

alexey@alexey:~/work/linux$ make ARCH=arm mxs_defconfig
Makefile:595: include/config/auto.conf: Нет такого файла или каталога
scripts/kconfig/conf  --syncconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
scripts/kconfig/Makefile:69: ошибка выполнения рецепта для цели «syncconfig»
make[2]: *** [syncconfig] Ошибка 1
Makefile:539: ошибка выполнения рецепта для цели «syncconfig»
make[1]: *** [syncconfig] Ошибка 2
Makefile:635: ошибка выполнения рецепта для цели «include/config/auto.conf»
make: *** [include/config/auto.conf] Ошибка 2

 

Говорит нету .config

Share this post


Link to post
Share on other sites

Судя по выхлопу, make defconfig был запущен не сразу после клонирования, что-то уже делалось до этого. Попробуйте make clean, а затем уже defconfig.

Share this post


Link to post
Share on other sites
4 hours ago, Alex_Golubev said:

Клонировал ядро линукса

А что помешало просто скачать tarball?

Share this post


Link to post
Share on other sites

А зачем make defconfig?

make ARCH=armmxs_defconfig
make ARCH=arm CROSS_COMPILE=path menuconfig (если надо)
make ARCH=arm CROSS_COMPILE=path

Собственно, результатом этого является bootable Image

Share this post


Link to post
Share on other sites
Quote

Target packages--->Graphic libraries and applications (graphic/text)--->Qt (obsolete)--->[нужное в нем]

А что значит [нужное в нем] ?

Share this post


Link to post
Share on other sites
1 minute ago, Alex_Golubev said:

А что значит [нужное в нем] ?

Точно нужен GUI module, ввод с tslib (как и сам tslib, его искать в Librares->Hardware), а вот нужна ли поддержка TIFF, SVG и т.п. - решайте сами.

Share this post


Link to post
Share on other sites

Не нашел Qt (obsolete). 

Spoiler

    *** Graphic applications ***                                           │ │  
  │ │        *** cog needs wpewebkit and a toolchain w/ threads ***                 │ │  
  │ │    [ ] fswebcam                                                               │ │  
  │ │    [ ] ghostscript                                                            │ │  
  │ │        *** glmark2 needs a toolchain w/ C++, gcc >= 4.9 ***                   │ │  
  │ │    [ ] gnuplot                                                                │ │  
  │ │    [ ] jhead                                                                  │ │  
  │ │        *** libva-utils needs a toolchain w/ C++, threads, dynamic library *** │ │  
  │ │    [ ] netsurf                                                                │ │  
  │ │    [ ] pngquant                                                               │ │  
  │ │    [ ] rrdtool                                                                │ │  
  │ │        *** tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 4.8, dynami│ │  
  │ │        *** Graphic libraries ***                                              │ │  
  │ │        *** cegui06 needs a toolchain w/ C++, threads, dynamic library ***     │ │  
  │ │        *** directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5│ │  
  │ │        *** efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads,│ │  
  │ │    [ ] fbdump (Framebuffer Capture Tool)                                      │ │  
  │ │    [ ] fbgrab                                                                 │ │  
  │ │    [ ] fb-test-app                                                            │ │  
  │ │        *** fbterm needs a toolchain w/ C++, wchar, locale ***                 │ │  
  │ │    [ ] fbv                                                                    │ │  
  │ │        *** freerdp needs a toolchain w/ wchar, dynamic library, threads, C++ *│ │  
  │ │    [ ] imagemagick                                                            │ │  
  │ │    [ ] linux-fusion communication layer for DirectFB multi                    │ │  
  │ │        *** mesa3d needs a toolchain w/ C++, NPTL, dynamic library ***         │ │  
  │ │        *** ocrad needs a toolchain w/ C++ ***                                 │ │  
  │ │    [ ] psplash                         

 [ ] SDL                                                                    │ │  
  │ │    [ ] sdl2                                                                   │ │  
  │ │        *** Other GUIs ***                                                     │ │  
  │ │        *** Qt5 needs a toolchain w/ wchar, NPTL, C++, dynamic library ***     │ │  
  │ │        *** tekui needs a Lua interpreter and a toolchain w/ threads, dynamic l│ │  
  │ │        *** weston needs udev and a toolchain w/ locale, threads, dynamic libra│ │  
  │ │    [ ] X.org X Window System  ----                                            │ │  
  │ │        *** midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 6, host g│ │  
  │ │        *** vte needs a toolchain w/ wchar, threads, C++, gcc >= 4.8 ***       │ │  
  │ │        *** vte needs an OpenGL or an OpenGL-EGL/wayland backend ***           │ │  
  │ │    [ ] xkeyboard-config 

 

Сделал простую программу в qt. 

Хочу вывести ее на экран. 

qt.png

Share this post


Link to post
Share on other sites
17 minutes ago, Alex_Golubev said:

Не нашел Qt (obsolete)

Похоже, уже выпилили Qt4 из buildroot'а. Придется взять версию постарше, в 2018.11 точно есть.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now