From: Michael Tretter <m.tretter@pengutronix.de>
To: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Cc: Michal Simek <michal.simek@xilinx.com>,
Rob Herring <robh+dt@kernel.org>, Dhaval Shah <dshah@xilinx.com>,
kernel@pengutronix.de, Michael Tretter <m.tretter@pengutronix.de>
Subject: [PATCH 0/6] soc: xilinx: vcu: provide interfaces for other drivers
Date: Tue, 17 Mar 2020 10:41:09 +0100 [thread overview]
Message-ID: <20200317094115.15896-1-m.tretter@pengutronix.de> (raw)
Hello,
The Xilinx VCU is glue for integrating the Allegro DVT codec into the ZynqMP
PL infrastructure. This glue is responsible for generating the clocks for the
actual codec and provides registers for reading the codec configuration. Other
drivers, e.g. the allegro-dvt driver, need to interact or at least read
information from the xlnx_vcu driver.
Therefore, the xlnx_vcu driver should provide its clocks for other drivers and
register the generated clocks in the clock tree. This allows other drivers to
simply get the clock rate via the usual interface.
It is not so simple for the second register bank (called "logicoreip" in the
original binding), because there are various registers for the encoder, the
decoder and common stuff (see PG252, H.264/H.265 Video Codec Unit v1.2, p.
14). Therefore, I decided to extract a separate binding for this register
bank, call it "xlnx,vcu-settings" and use a syscon interface that can be used
by the xlnx_vcu driver and other drivers that need this information.
I'm not too happy with this solution, but I couldn't come up with a better
solution without inventing a new interface, which I really don't want to do
for that use case.
I kept the behavior of the xlnx_vcu driver backwards compatible, to avoid
breaking systems that use device trees with the xlnx,vcu device tree node as
generated by Vivado, but to be able to use the register bank from other
drivers, you must use the new binding.
Michael
Michael Tretter (6):
soc: xilinx: vcu: drop useless success message
ARM: dts: define indexes for output clocks
soc: xilinx: vcu: implement clock provider for output clocks
dt-bindings: soc: xlnx: extract xlnx,vcu-settings to separate binding
soc: xilinx: vcu: use vcu-settings syscon registers
soc: xilinx: vcu: add missing register NUM_CORE
.../soc/xilinx/xlnx,vcu-settings.yaml | 45 +++++
.../bindings/soc/xilinx/xlnx,vcu.txt | 9 +-
drivers/soc/xilinx/Kconfig | 3 +-
drivers/soc/xilinx/xlnx_vcu.c | 163 ++++++++++++------
include/dt-bindings/clock/xlnx-vcu.h | 15 ++
include/linux/mfd/syscon/xlnx-vcu.h | 39 +++++
6 files changed, 216 insertions(+), 58 deletions(-)
create mode 100644 Documentation/devicetree/bindings/soc/xilinx/xlnx,vcu-settings.yaml
create mode 100644 include/dt-bindings/clock/xlnx-vcu.h
create mode 100644 include/linux/mfd/syscon/xlnx-vcu.h
--
2.20.1
next reply other threads:[~2020-03-17 9:41 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-17 9:41 Michael Tretter [this message]
2020-03-17 9:41 ` [PATCH 1/6] soc: xilinx: vcu: drop useless success message Michael Tretter
2020-03-17 9:41 ` [PATCH 2/6] ARM: dts: define indexes for output clocks Michael Tretter
2020-03-17 9:41 ` [PATCH 3/6] soc: xilinx: vcu: implement clock provider " Michael Tretter
2020-03-20 15:05 ` Michael Tretter
2020-03-17 9:41 ` [PATCH 4/6] dt-bindings: soc: xlnx: extract xlnx,vcu-settings to separate binding Michael Tretter
2020-03-30 20:44 ` Rob Herring
2020-03-17 9:41 ` [PATCH 5/6] soc: xilinx: vcu: use vcu-settings syscon registers Michael Tretter
2020-03-17 9:41 ` [PATCH 6/6] soc: xilinx: vcu: add missing register NUM_CORE Michael Tretter
2020-03-17 11:09 ` [PATCH 0/6] soc: xilinx: vcu: provide interfaces for other drivers Michal Simek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200317094115.15896-1-m.tretter@pengutronix.de \
--to=m.tretter@pengutronix.de \
--cc=devicetree@vger.kernel.org \
--cc=dshah@xilinx.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=michal.simek@xilinx.com \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).