Hi *Clement*,

yes, *tve0* is only for *VGA/CVBS* video output (which we don't use right 
now)
But just in case *we have enabled this controller and the result is the 
same*.

You're probably right about the *I2C* port (as the binding suggest) The 
thing is
we are using the *olimex olinuxino tft lcd 10.1"* panel, and as the binding 
file
states there should be an *I2C* bus connection (besides the RGB, hsync, 
vsync,
de, clk, backlight, etc) This *I2C* bus should connect to an internal 
eeprom that
contains the timing requirements (then the driver knows what kind of panel 
is
attached and selects between 4.3/7/10.1 inches olimex panels) But then on
the physical boards* there is no I2C bus connecting the panel*... (check the
schematics) besides in the future we intend to *use other tft lcd 10.1" 
panels*.

*Olimex A13SOM board schematic*:
*https://github.com/OLIMEX/SOM/blob/master/A13/A13-SOM/A13-SOM512_Rev_G.pdf*

*Olimex Olinuxino-micro board schematic (with an A13 similar as A13SOM)*
*https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/A13-OLinuXino-MICRO/1.%20Latest%20hardware%20revision/A13-OLinuXino-MICRO%20hardware%20revision%20B1/A13-OLinuXino-MICRO_Rev_B1.pdf*

*Olimex Olinuxino 10.1" tft lcd board schematic*
*https://github.com/OLIMEX/OLINUXINO/blob/master/HARDWARE/LCDs/LCD-OLinuXino-10TS/Hardware%20revision%20C1/LCD-OLINUXINO-10''TS_Rev_C.pdf*

that's why we set the timing in the device tree. So, may be what we should 
do
is remove the panel from the compatible line and use it only as a generic 
one:


*+compatible = "simple-panel"; *
* -compatible = "olimex,lcd-olinuxino", "simple-panel"; *

Anyway, *we will check both posibilities* (defining the panel on a I2C bus 
and
in the root but only as a generic panel)* Thanks again for your invaluable 
help :-D*

Best Regards,
*Sergio Sota*

El viernes, 11 de diciembre de 2020 a las 19:56:16 UTC+1, 
[email protected] escribió:

> Hi Sergio,
>
> Sorry looks like the tve0 is only required for composite / VGA output.
>
> Which LCD Panel do you use ?
>
> Looks like the bindings you are using should be declared on a I2C bus.
>
> https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.yaml
>
> So the drivers will read the configuration from the I2C eeprom
> Also check that CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is enabled.
>
> Regards,
> Clement
>
> On Fri, 11 Dec 2020 at 17:37, Clément Péron <[email protected]> wrote:
> >
> > Hi Sergio,
> >
> > Maybe you missed enabling tve0 ?
> >
> > 
> https://elixir.bootlin.com/linux/v5.9.13/source/arch/arm/boot/dts/sun5i.dtsi#L244
> >
> > Also could you send the bootlog is this doesn't fix your issue.
> >
> > Clement
> >
> > On Fri, 11 Dec 2020 at 17:13, Sergio Sota <[email protected]> wrote:
> > >
> > > Hi Clement,
> > >
> > > this week we have had no luck with Allwinner A13 video decoding, here 
> you
> > > can find my device tree. We have added panel description (before we 
> used
> > > an uboot configuration) front-end, back-end and tcon. Also on linux 
> mainline
> > > kernel (5.9.11) we have selected DRM_SUN4I and DRM_SUN4I_BACKEND,
> > > but seems to be no DRM plane support on our system (no sun4i-drm kernel
> > > messages and no /dev/dri/card0 device)
> > >
> > > Also with VLC player we have selected in the menu the configuration 
> options:
> > > VA-API video decoder and X11 video output (XCB) but no video decoding.
> > > With MPV player instead we can see some video frames, but it seems to 
> be
> > > trying to decode via software, so it is almost like static pictures.
> > >
> > > Best Regards,
> > > Sergio Sota
> > >
> > > This device tree is based on mainline kernel 
> sun5i-a13-olinuxino-micro.dts
> > >
> > > #######################################################
> > > ################## DEVICE TREE START #####################
> > > #######################################################
> > >
> > >
> > > /*
> > > * Copyright 2012 Maxime Ripard <[email protected]>
> > > * Copyright 2013 Hans de Goede <[email protected]>
> > > *
> > > * This file is dual-licensed: you can use it either under the terms
> > > * of the GPL or the X11 license, at your option. Note that this dual
> > > * licensing only applies to this file, and not this project as a
> > > * whole.
> > > *
> > > * a) This file is free software; you can redistribute it and/or
> > > * modify it under the terms of the GNU General Public License as
> > > * published by the Free Software Foundation; either version 2 of the
> > > * License, or (at your option) any later version.
> > > *
> > > * This file is distributed in the hope that it will be useful,
> > > * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > > * GNU General Public License for more details.
> > > *
> > > * Or, alternatively,
> > > *
> > > * b) Permission is hereby granted, free of charge, to any person
> > > * obtaining a copy of this software and associated documentation
> > > * files (the "Software"), to deal in the Software without
> > > * restriction, including without limitation the rights to use,
> > > * copy, modify, merge, publish, distribute, sublicense, and/or
> > > * sell copies of the Software, and to permit persons to whom the
> > > * Software is furnished to do so, subject to the following
> > > * conditions:
> > > *
> > > * The above copyright notice and this permission notice shall be
> > > * included in all copies or substantial portions of the Software.
> > > *
> > > * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > > * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> > > * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > > * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> > > * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> > > * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > > * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> > > * OTHER DEALINGS IN THE SOFTWARE.
> > > */
> > >
> > > /dts-v1/;
> > > #include "sun5i-a13.dtsi"
> > > #include "sunxi-common-regulators.dtsi"
> > > #include <dt-bindings/gpio/gpio.h>
> > > #include <dt-bindings/pwm/pwm.h>
> > > #include <dt-bindings/interrupt-controller/irq.h>
> > >
> > > / {
> > > model = "Olimex A13-Olinuxino Micro";
> > > compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13";
> > >
> > > aliases {
> > > serial0 = &uart1;
> > > };
> > >
> > > chosen {
> > > stdout-path = "serial0:115200n8";
> > > };
> > >
> > > leds {
> > > compatible = "gpio-leds";
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&led_pins_olinuxinom>;
> > >
> > > power {
> > > label = "a13-olinuxino-micro:green:power";
> > > gpios = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */
> > > default-state = "on";
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * clock spi0 mcp2515 (spi can controller)
> > > 
> *****************************************************************************/
> > > clocks {
> > > #address-cells = <1>;
> > > #size-cells = <1>;
> > > can0_osc_fixed: can0_osc_fixed {
> > > compatible = "fixed-clock";
> > > #clock-cells = <0>;
> > > clock-frequency = <10000000>;
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * panel backlight
> > > 
> *****************************************************************************/
> > > backlight: backlight {
> > > compatible = "pwm-backlight";
> > > pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
> > > brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
> > > default-brightness-level = <8>;
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * panel tft lcd 10.1" (rgb interface)
> > > 
> *****************************************************************************/
> > > panel {
> > > compatible = "olimex,lcd-olinuxino", "simple-panel";
> > > power-supply = <&reg_vcc3v3>;
> > > enable-gpios = <&pio 1 10 GPIO_ACTIVE_HIGH>; /* PB10 */
> > > backlight = <&backlight>;
> > > status = "okay";
> > >
> > > display-timings {
> > > timing0 {
> > > clock-frequency = <45000000>;
> > > hactive = <1024>;
> > > vactive = <600>;
> > > hfront-porch = <16>;
> > > hback-porch = <150>;
> > > hsync-len = <10>;
> > > vback-porch = <2>;
> > > vfront-porch = <21>;
> > > vsync-len = <2>;
> > > hsync-active = <0>;
> > > vsync-active = <0>;
> > > de-active = <1>;
> > > pixelclk-active = <1>;
> > > };
> > > };
> > >
> > > port {
> > > #address-cells = <1>;
> > > #size-cells = <0>;
> > >
> > > panel_input: endpoint {
> > > remote-endpoint = <&tcon0_out_lcd>;
> > > };
> > > };
> > > };
> > > };
> > >
> > > &ehci0 {
> > > status = "okay";
> > > };
> > >
> > > &i2c0 {
> > > status = "okay";
> > > };
> > >
> > > &i2c1 {
> > > status = "okay";
> > > };
> > >
> > > &i2c2 {
> > > status = "okay";
> > > };
> > >
> > > &mmc0 {
> > > vmmc-supply = <&reg_vcc3v3>;
> > > bus-width = <4>;
> > > cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
> > > status = "okay";
> > > };
> > >
> > > &ohci0 {
> > > status = "okay";
> > > };
> > >
> > > &otg_sram {
> > > status = "okay";
> > > };
> > >
> > > &reg_usb0_vbus {
> > > gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
> > > status = "okay";
> > > };
> > >
> > > &reg_usb1_vbus {
> > > gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
> > > status = "okay";
> > > };
> > >
> > > &uart1 {
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&uart1_pg_pins>;
> > > status = "okay";
> > > };
> > >
> > > &usb_otg {
> > > dr_mode = "otg";
> > > status = "okay";
> > > };
> > >
> > > &usbphy {
> > > usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* 
> PG2 */
> > > usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 
> /* PG1 */
> > > usb0_vbus-supply = <&reg_usb0_vbus>;
> > > usb1_vbus-supply = <&reg_usb1_vbus>;
> > > status = "okay";
> > > };
> > >
> > > &pio {
> > > led_pins_olinuxinom: led-pin {
> > > pins = "PG9";
> > > function = "gpio_out";
> > > drive-strength = <20>;
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi0 pins
> > > 
> *****************************************************************************/
> > > spi0_pins: spi0_pins {
> > > pins = "PC0", "PC1", "PC2";
> > > function = "spi0";
> > > };
> > >
> > > spi0_cs0_pin: spi0_cs_pin {
> > > pins = "PC3";
> > > function = "spi0";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi2 ethernet controller (enc28j60) pins
> > > 
> *****************************************************************************/
> > > eth0_irq_pin: eth0_irq_pin {
> > > pins = "PB3";
> > > function = "irq";
> > > bias-pull-up;
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi2 pins
> > > 
> *****************************************************************************/
> > > spi2_pins: spi2_pins {
> > > pins = "PE1", "PE2", "PE3";
> > > function = "spi2";
> > > };
> > >
> > > spi2_cs0_pin: spi2_cs0_pin {
> > > pins = "PE0";
> > > function = "spi2";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi0 can controller (mcp2515) pins
> > > 
> *****************************************************************************/
> > > can0_irq_pin: can0_irq_pin {
> > > pins = "PB4";
> > > function = "irq";
> > > bias-pull-up;
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi0 (mcp2515 spi can controller)
> > > 
> *****************************************************************************/
> > > &spi0 {
> > > #address-cells = <1>;
> > > #size-cells = <0>;
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
> > > status = "okay";
> > >
> > > mcp2515@0 {
> > > compatible = "microchip,mcp2515";
> > > reg = <0>;
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&can0_irq_pin>;
> > > interrupt-parent = <&pio>;
> > > interrupts = <1 4 2>; /* PB4 IRQ_TYPE_EDGE_FALLING */
> > > clocks = <&can0_osc_fixed>;
> > > spi-max-frequency = <10000000>;
> > > status = "okay";
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * spi2 (enc28j60 spi ethernet controller)
> > > 
> *****************************************************************************/
> > > &spi2 {
> > > #address-cells = <1>;
> > > #size-cells = <0>;
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&spi2_pins>, <&spi2_cs0_pin>;
> > > status = "okay";
> > >
> > > enc28j60@0 {
> > > compatible = "microchip,enc28j60";
> > > /* compatible = "microchip,encx24j600"; */
> > > reg = <0>;
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&eth0_irq_pin>;
> > > interrupt-parent = <&pio>;
> > > interrupts = <1 3 2>; /* PB3 IRQ_TYPE_EDGE_FALLING */
> > > spi-max-frequency = <12000000>;
> > > status = "okay";
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * codec audio controller (headphones)
> > > 
> *****************************************************************************/
> > > &codec {
> > > status = "okay";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * crypto engine (sha, md5, rng)
> > > 
> *****************************************************************************/
> > > &crypto {
> > > status = "okay";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * front end (display engine)
> > > 
> *****************************************************************************/
> > > &fe0 {
> > > status = "okay";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * back end (display engine)
> > > 
> *****************************************************************************/
> > > &be0 {
> > > status = "okay";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * pipeline (display engine)
> > > 
> *****************************************************************************/
> > > &tcon0 {
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&lcd_rgb666_pins>;
> > > status = "okay";
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * timing controller (panel tft lcd 10.1")
> > > 
> *****************************************************************************/
> > > &tcon0_out {
> > > tcon0_out_lcd: endpoint@0 {
> > > reg = <0>;
> > > remote-endpoint = <&panel_input>;
> > > };
> > > };
> > >
> > > 
> /*****************************************************************************
> > > * pwm controller
> > > 
> *****************************************************************************/
> > > &pwm {
> > > pinctrl-names = "default";
> > > pinctrl-0 = <&pwm0_pin>;
> > > status = "okay";
> > > };
> > >
> > >
> > > #######################################################
> > > ################### DEVICE TREE END ######################
> > > #######################################################
> > >
> > > El domingo, 6 de diciembre de 2020 a las 19:02:09 UTC+1, 
> [email protected] escribió:
> > >>
> > >> Hi Sergio,
> > >>
> > >> On Fri, 4 Dec 2020 at 13:31, Sergio Sota <[email protected]> wrote:
> > >> >
> > >> > Dear all,
> > >> >
> > >> > I'm building a linux system for the Olimex A13SOM module. This 
> little module comes
> > >> > with the Allwinner A13 SOC. In the past we have been using other 
> modules with the
> > >> > Allwinner A20 SOC and the old sunxi-linux kernel in order to have 
> support for all
> > >> > the SOC peripherals (as the Video Engine decoder, Mali GPU, etc)
> > >> >
> > >> > This time we would like to use a mainline kernel, taking into 
> account that by now
> > >> > almost all peripherals are supported in mainline. We have had luck 
> tunning device
> > >> > tree (as we were used to use .fex files) and by now we can have 
> Ethernet over SPI,
> > >> > Can interface over SPI, ALSA audio output, LCD RGB video output, 
> Cryto engine to
> > >> > generate fast entropy, OpenGL ES support (thanks to LIMA driver and 
> Mesa3d libs)
> > >> > and so on... but we would like also to have video decoding support.
> > >> >
> > >> > We have turned on the frontend, backend, video engine in the device 
> tree, build
> > >> > the kernel with Cedrus V4L M2M driver, libva_vl42_request and 
> v4l2_request_test.
> > >> > (and also set the CMA memory allocation, environment variables, etc)
> > >> >
> > >> > Using vainfo everything is ok, the linux driver-libva request part 
> works, but then
> > >> > we check with v4l2_request_test utility and it fails as there is no 
> DRM support on
> > >> > our system. We have on the system /dev/video0 and /dev/media0 but 
> no /dev/dri/card0
> > >> > device (in fact we selected the linux sun4i-drm driver but no 
> message appers on the
> > >> > boot sequence regarding this, even when build as module it happens 
> nothing...)
> > >> >
> > >> > We have checked the Cedrus driver information and appears to be no 
> support for the
> > >> > DRM plane in A13 SOC (broken/missing) and as I understand that 
> means that part of
> > >> > the picture composing work should be done by software (and that's 
> not reliable)
> > >> >
> > >> > My question is: is there DRM plane support for A13 SOC? (as time 
> goes on I checked
> > >> > there has been work done in the mainline kernel and fixes made) 
> Then, in case of no
> > >> > support, are there plans to add this support in the future? and 
> finally, could we
> > >> > play video files without this DRM support? by what means?
> > >>
> > >> Sorry I can't help you a lot on this.
> > >> I don't know if the wiki is up to date for this.
> > >> But note that A13 is similar to R8 => C.H.I.P Computer.
> > >> All stuff you found on R8 will be the same for A13.
> > >>
> > >> Have a look at the R8 CHIP device-tree.
> > >> 
> https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/sun5i-r8-chip.dts
> > >>
> > >> And check that you have a correct TCON description in your dt.
> > >> If you can, post your device-tree.
> > >> And don't forget to reply if you make it works :)
> > >>
> > >> Regards,
> > >> Clement
> > >>
> > >>
> > >> >
> > >> > Thanks in advance for your help and your time, your team have made 
> a wonderful
> > >> > work. I also apologize for my poor English, and for writing this 
> email as maybe this is
> > >> > not the proper way to issue this questions, but didn't know other 
> way
> > >> >
> > >> > Best Regards,
> > >> > Sergio Sota
> > >> >
> > >> > --
> > >> > You received this message because you are subscribed to the Google 
> Groups "linux-sunxi" group.
> > >> > To unsubscribe from this group and stop receiving emails from it, 
> send an email to [email protected].
> > >> > To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/linux-sunxi/a6390bb5-69f1-47a7-864c-399109838857n%40googlegroups.com
> .
> > >
> > > --
> > > You received this message because you are subscribed to the Google 
> Groups "linux-sunxi" group.
> > > To unsubscribe from this group and stop receiving emails from it, send 
> an email to [email protected].
> > > To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/linux-sunxi/565d70c3-b708-4216-83fd-ae37d42858e0n%40googlegroups.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/2aa1145d-0fc4-4183-84ec-4d89fa566488n%40googlegroups.com.

Reply via email to