This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM572x SII9022 driver fails

Hi:

    Here is the sii9022 code I added in the device tree,The kernel version 4.4.12.   

&dss {
status = "ok";
vdda_video-supply = <&ldoln_reg>;
ports{
#address-cells = <1>;
#size-cells = <0>;
port {
reg = <0>;
dpi_out: endpoint {
remote-endpoint = <&sii9022_in>;
data-lines = <24>;
};
};
};
};

&i2c4 {
status = "okay";
clock-frequency = <400000>;

sii9022: sii9022@39 {
#sound-dai-cells = <0>;
compatible = "sil,sii9022";
reg = <0x39>;

i2s-fifo-routing = <
(ENABLE_BIT|CONNECT_SD0)
0
0
0
>;

interrupt-parent = <&gpio5>;
interrupts = <8 IRQ_TYPE_LEVEL_LOW>;

ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;

sii9022_in: endpoint {
remote-endpoint = <&dpi_out>;
};
};

port@1 {
reg = <1>;

sii9022_out: endpoint {
remote-endpoint = <&hdmi1_connector_in>;
};
};
};
};
};

SII9022 Are there any errors in the device tree part?

Compile Replace the new device tree file am57xx-beagle-x15.dtb.

Print DBUG information, The red part is a dbug print error. No resolution was obtained。

[ 2.270218] mmcblk0: mmc1:0001 M8G1GC 7.28 GiB
[ 2.275932] dmm 4e000000.dmm: initialized all PAT entries
[ 2.281593] === omap_connect_dssdevs ===
[ 2.284998] mmcblk0boot0: mmc1:0001 M8G1GC partition 1 4.00 MiB
[ 2.291506] ===================
[ 2.294657] hdmic_connect
[ 2.295188] mmcblk0boot1: mmc1:0001 M8G1GC partition 2 4.00 MiB
[ 2.303274] ###### sii9022_connect ######
[ 2.303781] mmcblk0: p1 p2
[ 2.310141] ====== hdmi_connect ======
[ 2.314176] ====== hdmi_connect end ======
[ 2.319070] ###### sii9022_connect end ######
[ 2.323456] hdmic_connect end
[ 2.326445] === omap_connect_dssdevs end ===
[ 2.333287] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.339957] [drm] No driver support for vblank timestamp query.
[ 2.355849] omapdrm omapdrm.0: No connectors reported connected with modes
[ 2.369788] [drm] Cannot find any crtc or sizes - going 1024x768
[ 2.385632] [drm] Enabling DMM ywrap scrolling
[ 2.403001] Console: switching to colour frame buffer device 240x67
[ 2.421370] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
[ 2.448659] omapwb-m2m: Device registered as video10
[ 2.453655] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0
[ 2.470284] hctosys: unable to open rtc device (rtc0)
[ 2.486683] aic_dvdd_fixed: disabling
[ 2.490612] ldousb: disabling
[ 2.494070] ALSA device list:
[ 2.497058] No soundcards found.
[ 2.550628] EXT4-fs (mmcblk0p2): recovery complete
[ 2.555929] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 2.564099] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 2.572977] devtmpfs: mounted
[ 2.576174] Freeing unused kernel memory: 360K (c095a000 - c09b4000)
[ 2.582578] This architecture does not have kernel memory protection.
[ 2.651804] random: nonblocking pool is initialized

See sii9022 drive only in the omapdss_hdmi_ops into the sii9022_connect

static const struct omapdss_hdmi_ops sii9022_hdmi_ops = {
.connect = sii9022_connect,
.disconnect = sii9022_disconnect,

.enable = sii9022_enable,
.disable = sii9022_disable,

.check_timings = sii9022_check_timings,
.set_timings = sii9022_set_timings,
.get_timings = sii9022_get_timings,

.read_edid = sii9022_read_edid,
.detect = sii9022_detect,
.set_hdmi_mode = sii9022_set_hdmi_mode,
.set_infoframe = sii9022_set_infoframe,
};

Why sii9022 can not get resolution?read_edid function is how to call?The oscilloscope does not measure the hdmi signal and the signal on the DDC BUS bus?

  • Hi,

    Can you try taking a reference from the am437x device tree file, i.e. am437x-gp-evm-hdmi.dts? It is the closest to am57xx devices, which uses sii9022 hdmi encoder.
    The dss and sii (connected to i2c4) nodes seem correct, however, try adding an hdmi node:
    +/ {
    + aliases {
    + display0 = &hdmi;
    + };
    +
    + hdmi: connector {
    + compatible = "hdmi-connector";
    + label = "hdmi";
    +
    + type = "b";
    +
    + port {
    + hdmi_connector_in: endpoint {
    + remote-endpoint = <&sii9022_out>;
    + };
    + };
    + };
    +};

    Best Regards,
    Yordan
  • Hi
    aliases {
    rtc0 = &mcp_rtc;
    rtc1 = &tps659038_rtc;
    rtc2 = &rtc;
    display = &hdmi0;

    sound0 = &sound0;
    };

    hdmi0: connector {
    compatible = "hdmi-connector";
    label = "hdmi";

    type = "b";

    port {
    hdmi_connector_in: endpoint {
    remote-endpoint = <&sii9022_out>;
    };
    };
    };


    According to am437x device tree file or the same problem?
    Execute the modetest command on the board,The printing information is as follows:

    root@am57xx-evm:~# modetest
    trying to open device 'i915'...failed
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    trying to open device 'omapdrm'...done
    Encoders:
    id crtc type possible crtcs possible clones
    26 0 TMDS 0x00000001 0x00000000

    Connectors:
    id encoder status name size (mm) modes encoders
    27 0 disconnected HDMI-A-1 0x0 0 26
    props:
    1 EDID:
    flags: immutable blob
    blobs:

    value:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0

    CRTCs:
    id fb pos size
    29 0 (0,0) (0x0)
    0 0 0 0 0 0 0 0 0 flags: ; type:
    props:
    22 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    23 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    24 background:
    flags: range
    values: 0 16777215
    value: 0
    25 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 0
    31 0 (0,0) (0x0)
    0 0 0 0 0 0 0 0 0 flags: ; type:
    props:
    22 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    23 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    24 background:
    flags: range
    values: 0 16777215
    value: 0
    25 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 0

    Planes:
    id crtc fb CRTC x,y x,y gamma size possible crtcs
    28 0 0 0,0 0,0 0 0x00000001
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 0
    20 global_alpha:
    flags: range
    values: 0 255
    value: 255
    21 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0
    30 0 0 0,0 0,0 0 0x00000002
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 0
    20 global_alpha:
    flags: range
    values: 0 255
    value: 255
    21 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0
    32 0 0 0,0 0,0 0 0x00000003
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 0
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 2
    20 global_alpha:
    flags: range
    values: 0 255
    value: 255
    21 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0
    33 0 0 0,0 0,0 0 0x00000003
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 0
    18 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    19 zorder:
    flags: range
    values: 0 3
    value: 3
    20 global_alpha:
    flags: range
    values: 0 255
    value: 255
    21 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0

    Frame buffers:
    id size pitch