I'm trying to setting up OLED display (display use MikroBus) for WARP7.
Is it possible to combine these item together ?
When i use FBTFT Driver (support SSD1351 controller).
It always return error.
=====
#modprobe fbtft_device name=pioled debug=3
> spi_busnum_to_master(0) returned NULL
> fbtft_device: failed to register spi device
=====
I also tried to modify linux kernel (check (*) or (M) for almost all "graphic device support" & "spi" support in menuconfig to use framebuffer but error return.
=====
> Error opening /dev/fb0: No such file or directory
=====
I really lost here since I did not work much with linux or embedded before.
The questions are:
- Is there any knowledge or tutorial or something that I should learn / follow as newbie.
- Do i go in right ways ?
====== i think the ways should be below =====
1. Plug board & display together (use MikroBus standard)
2. Power up for BOARD via USB (picocom)
3. Enable all PINs (except AN & 3.3V PIN) by linux command "echo" for GPIO
4. Run FBTFT Driver to enable display (use fb_ssd1351 modules of FBTFT driver)
5. Run "echo" command to send data to framebuffer (/dev/fb0) to display console or something on OLED display
===================================
Note: I 've read user_guideline many times and do "google-ing" for OLED display but results are about Raspberry, Arduino, others board, or LCD (not OLED).
:smileysad: :smileysad: :smileysad:
Ref:
- Linux kernel
- FBTFT Driver: GitHub - notro/fbtft: Linux Framebuffer drivers for small TFT LCD display modules
Hi
please check below link where oled fbtft driver was used
https://community.nxp.com/thread/451152
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I follow schematic file of WARP7 & link you sent.
I added in imx7s-warp.dts as below:
=====
pinctrl_mkbus_ecspi3: mkbusgrp_ecspi3 {
fsl,pins = <
MX7D_PAD_ECSPI2_SCLK__MKBUS_ESPI3_SCLK 0x80000000
MX7D_PAD_ECSPI2_MISO__MKBUS_ESPI3_MISO 0x80000000
MX7D_PAD_ECSPI2_MOSI__MKBUS_ESPI3_MOSI 0x80000000
MX7D_PAD_ECSPI2_SS0__MKBUS_ESPI3_SS0_B 0x80000000
>;
};
pinctrl_mkbus_uart5: mkbusgrp_uart5 {
fsl,pins = <
MX7D_PAD_ECSPI1_SCLK__MKBUS_UART5_TXD 0x80000000
MX7D_PAD_ECSPI1_MOSI__MKBUS_UART5_RXD 0x80000000
>;
};
=====
When I run "make" command. I got this error
====
Error: arch/arm/boot/dts/imx7s-warp.dts:460.5-6 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [arch/arm/boot/dts/imx7s-warp.dtb] Error 1
make: *** [dtbs] Error 2
====
is there something wrong with my added code ?
One more thing, I'm using "core-image-base" is it ok ?
If not, which image should I changed ?
"fsl-image-gui" i guess
yes better to use "fsl-image-gui"
~igor
@@
Can you help me explain question above.
About PIN and value
Hi igor
I 've read it before.
Please help me some infomation:
1. in code below
- where can I get pins full name, and value assigned.
for example "MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO" and "0x70a1"
and CS PIN is "SS0" PIN, is it right ?
- other information, can we use the same as imx6 which is posted in discussion ?
=======
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog_1>;
imx6ul-evk {
...
pinctrl_ecspi4: ecspi4grp {
fsl,pins = <
MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO 0x70a1
MX6UL_PAD_ENET2_TX_ENi__ECSPI4_MOSI 0x70a1
MX6UL_PAD_ENET2_TX_DATA1__ECSPI4_SCLK 0x70a1
MX6UL_PAD_ENET2_RX_ER__ECSPI4_SS0 0x70a1
>;
};
...
};
...
&ecspi4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi4>;
status = "okay";
};
=======
2. in code below, I do not clearly understand about it.
- "reset", "dc" name is automatically read by Linux, isn't it ?
- "30", "31" where can I find these value ?
======
{ "reset", 30 },
{ "dc", 31 },
{},
======
- When I use "echo" command for GPIO, I can enable PIN #RST = GPIO 198, #PWM = GPIO 200, #INT = GPIO 199
Can I use these value to replace above code ?
For example
=======
{"RST", 198} -> I think it is for power on (when I echo 1, power led of Oled display is ON)
{"PWM", 200}
{"INT", 199} -> is this neccessary ?
=======