[PATCH v11 20/24] arm64: dts: rockchip: enable vop2 and hdmi tx on rock-3a
Peter Geis
pgwipeout at gmail.com
Mon May 9 18:35:19 PDT 2022
On Mon, May 9, 2022 at 3:49 PM Piotr Oniszczuk
<piotr.oniszczuk at gmail.com> wrote:
>
> >
> > 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"
Could you grab the clock tree from /sys/kernel/debug/clk/clk_summary
for the clk_hdmi_cec tree?
>
> 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!
Good news!
>
More information about the Linux-rockchip
mailing list