[PATCH v11 20/24] arm64: dts: rockchip: enable vop2 and hdmi tx on rock-3a

Piotr Oniszczuk piotr.oniszczuk at gmail.com
Mon May 9 12:49:16 PDT 2022


> 
> If you want to confirm the hardware is configured correctly you can
> remove the cec pin from the hdmi node and set up a cec-gpio node.
> https://elixir.bootlin.com/linux/v5.18-rc5/source/Documentation/devicetree/bindings/media/cec-gpio.txt
> 
> For some reason the board developers decided to make this selectable,
> check the location of R90652 and R90653.
> 

Peter,

my board is v1.31 and is using HDMITX_CEC_M1 i think.
I verified this by temp. changing to HDMITX_CEC_M0

For M1:
2022-05-09 21:12:37.130188 I  CECAdapter: Using physical address 1.0.0.0 from EDID
2022-05-09 21:12:37.173267 I  CECAdapter: Found 1 CEC devices(s).
2022-05-09 21:12:37.173299 I  CECAdapter: Device 1: path '/dev/cec0' com port 'Linux' SELECTED
2022-05-09 21:12:37.173307 I  CECAdapter: Trying to open device /dev/cec0 (Linux).
2022-05-09 21:12:37.180095 I  CECAdapter: connection opened
2022-05-09 21:12:37.545229 I  CECAdapter: setting HDMI port to 1 on device TV (0)
2022-05-09 21:12:37.904145 I  CECAdapter: >> source deactivated: Playback 1 (4)
2022-05-09 21:12:37.904311 I  CECAdapter: Source 4 Deactivated
2022-05-09 21:12:38.284452 I  CECAdapter: >> source activated: Playback 1 (4)
2022-05-09 21:12:38.284492 I  CECAdapter: Source 4 Activated
2022-05-09 21:12:38.284694 I  CECAdapter: CEC client registered: libCEC version = 6.0.2, client version = 6.0.2, firmware version = 0, logical address(es) = Playback 1 (4) , physical address: 1.0.0.0, git revision: v12.0.0-v32.0-16-g611cac15cc+59-07dc900~dirty, compiled on 2022-04-23 05:50:57 by piotro@/bin/sh: hostname: command not found on Linux 5.16.14-arch1-4 (x86_64), features: P8_USB, DRM, P8_detect, randr, Linux
2022-05-09 21:12:38.519394 I  CECAdapter: Opened CEC device.
2022-05-09 21:12:38.636950 I  CECAdapter: << powering on 'TV' (0)
2022-05-09 21:12:38.754023 E  CECAdapter: Failed to turn TV on.
2022-05-09 21:12:38.754313 I  CECAdapter: >> source activated: Playback 1 (4)
2022-05-09 21:12:38.754343 I  CECAdapter: Source 4 Activated
2022-05-09 21:12:38.872079 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:12:38.974698 I  CECAdapter: Asked TV to switch to this input.
2022-05-09 21:13:07.292069 W  CECAdapter: CEC device can't poll TV: TV does not respond to CEC polls
2022-05-09 21:13:37.296372 W  CECAdapter: CEC device can't poll TV: TV does not respond to CEC polls 

for M0:
2022-05-09 21:37:47.632175 I  CECAdapter: Using physical address 1.0.0.0 from EDID
2022-05-09 21:37:47.680618 I  CECAdapter: Found 1 CEC devices(s).
2022-05-09 21:37:47.680644 I  CECAdapter: Device 1: path '/dev/cec0' com port 'Linux' SELECTED
2022-05-09 21:37:47.680654 I  CECAdapter: Trying to open device /dev/cec0 (Linux).
2022-05-09 21:37:47.694974 I  CECAdapter: connection opened
2022-05-09 21:37:56.341846 I  CECAdapter: setting HDMI port to 1 on device TV (0)
2022-05-09 21:38:17.675457 I  CECAdapter: >> source activated: Playback 1 (4)
2022-05-09 21:38:17.675561 I  CECAdapter: Source 4 Activated
2022-05-09 21:38:17.675657 I  CECAdapter: CEC client registered: libCEC version = 6.0.2, client version = 6.0.2, firmware version = 0, logical address(es) = Playback 1 (4) , physical address: 1.0.0.0, git revision: v12.0.0-v32.0-16-g611cac15cc+59-07dc900~dirty, compiled on 2022-04-23 05:50:57 by piotro@/bin/sh: hostname: command not found on Linux 5.16.14-arch1-4 (x86_64), features: P8_USB, DRM, P8_detect, randr, Linux
2022-05-09 21:38:30.475336 I  CECAdapter: Opened CEC device.
2022-05-09 21:38:34.741846 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:38:39.008432 I  CECAdapter: << powering on 'TV' (0)
2022-05-09 21:38:39.008506 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:39.008526 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:43.275094 E  CECAdapter: Failed to turn TV on.
2022-05-09 21:38:43.275201 I  CECAdapter: >> source activated: Playback 1 (4)
2022-05-09 21:38:43.275224 I  CECAdapter: Source 4 Activated
2022-05-09 21:38:43.275375 W  CECAdapter: CEC device can't poll TV: TV does not respond to CEC polls
2022-05-09 21:38:47.541811 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:38:47.541898 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:47.541909 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:47.541924 E  CECAdapter: Failed to switch to this input.
2022-05-09 21:38:51.808626 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:38:51.808722 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:51.808735 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:57.142091 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:38:57.142109 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:38:57.142117 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:39:02.475097 I  CECAdapter: << Playback 1 (4) -> broadcast (F): active source (1000)
2022-05-09 21:39:02.475115 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22
2022-05-09 21:39:02.475123 E  CECAdapter: CLinuxCECAdapterCommunication::Write - ioctl CEC_TRANSMIT failed - tx_status=00 errno=22

> I have some concerns about the DTS you've built here. For instance how
> come you are modifying the power domains?

This was experiment as I was advised:

"32k clock needed for cec and this clock is generated by the rtc which is embedded in the rk8xx regulator.
So you should make sure it is enabled when hdmi is powerd on, eg adding it to the RK3568_PD_VO powerdomain should help"

power domains entries in dts was attempt to play with above cec clock sugestion.

M0/M1 logs in this email are from cleaned dts: https://pastebin.com/0pgwpdsS

> USB3 is broken because the rock3-a is a rk3568 device and you're
> missing combophy0.

Perfect. all 4 usb ports are now working.
Also no errors in dmesg. 
Thx!




More information about the Linux-rockchip mailing list