Jump to content

    
Sign in to follow this  
Alex_Golubev

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

Recommended Posts

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
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
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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this