[PATCH v2 00/18] CSI2RX support on J721E

From: Pratyush Yadav
Date: Wed May 26 2021 - 11:23:29 EST


Hi,

This series adds support for CSI2 capture on J721E. It includes some
fixes to the Cadence CSI2RX driver, adds Rx support to Cadence DPHY
driver, and finally adds the TI CSI2RX wrapper driver.

Tested on TI's J721E with OV5640 sensor.

Changes in v2:
- Use phy_pm_runtime_get_sync() and phy_pm_runtime_put() before making
calls to set PHY mode, etc. to make sure it is ready.
- Add all 64 threads, instead of having only the one thread being
currently used by the driver.
- Use dmaengine_get_dma_device() instead of directly accessing
dma->device->dev.
- Do not set dst_addr_width when configuring slave DMA.
- Move to a separate subdir and rename to j721e-csi2rx.c
- Convert compatible to ti,j721e-csi2rx.
- Move to use Media Controller centric APIs.
- Improve cleanup in probe when one of the steps fails.
- Add colorspace to formats database.
- Set hw_revision on media_device.
- Move video device initialization to probe time instead of register time.
- Rename to ti,j721e-csi2rx.yaml
- Add an entry in MAINTAINERS.
- Add a description for the binding.
- Change compatible to ti,j721e-csi2rx to make it SoC specific.
- Remove description from dmas, reg, power-domains.
- Remove a limit of 2 from #address-cells and #size-cells.
- Fix add ^ to csi-bridge subnode regex.
- Make ranges mandatory.
- Add unit address in example.
- Add a reference to cdns,csi2rx in csi-bridge subnode.
- Expand the example to include the csi-bridge subnode as well.
- Re-order subject prefixes.
- Drop reg description.
- Add a description for each DPHY clock.
- Rename dphy@... to phy@... in example.
- Add Laurent's R-by.
- Re-order subject prefixes.
- Re-order subject prefixes.
- Add power-domain to the example.
- Add Laurent's R-by.
- Re-order subject prefixes.
- Convert OV5640 to use runtime PM and drop Cadence CSI2RX s_power patch.
- Drop subdev call wrappers from cdns-csi2rx.
- Move VPE and CAL to a separate subdir.
- Rename ti-csi2rx.c to j721e-csi2rx.c

Paul Kocialkowski (1):
phy: Distinguish between Rx and Tx for MIPI D-PHY with submodes

Pratyush Yadav (17):
phy: cdns-dphy: Prepare for Rx support
phy: cdns-dphy: Allow setting mode
phy: cdns-dphy: Add Rx support
media: ov5640: Use runtime PM to control sensor power
media: cadence: csi2rx: Add external DPHY support
media: cadence: csi2rx: Soft reset the streams before starting capture
media: cadence: csi2rx: Set the STOP bit when stopping a stream
media: cadence: csi2rx: Fix stream data configuration
media: cadence: csi2rx: Populate subdev devnode
dmaengine: ti: k3-psil-j721e: Add entry for CSI2RX
media: Re-structure TI platform drivers
media: ti: Add CSI2RX support for J721E
media: dt-bindings: Add DT bindings for TI J721E CSI2RX driver
media: dt-bindings: Convert Cadence CSI2RX binding to YAML
phy: dt-bindings: Convert Cadence DPHY binding to YAML
phy: dt-bindings: cdns,dphy: make clocks optional
phy: dt-bindings: cdns,dphy: add power-domains property

.../devicetree/bindings/media/cdns,csi2rx.txt | 100 --
.../bindings/media/cdns,csi2rx.yaml | 164 ++++
.../bindings/media/ti,j721e-csi2rx.yaml | 101 ++
.../devicetree/bindings/phy/cdns,dphy.txt | 20 -
.../devicetree/bindings/phy/cdns,dphy.yaml | 54 ++
MAINTAINERS | 10 +-
drivers/dma/ti/k3-psil-j721e.c | 73 ++
drivers/media/i2c/Kconfig | 2 +-
drivers/media/i2c/ov5640.c | 124 ++-
drivers/media/platform/Kconfig | 12 +
drivers/media/platform/Makefile | 2 +-
drivers/media/platform/cadence/cdns-csi2rx.c | 196 +++-
drivers/media/platform/ti/Makefile | 4 +
drivers/media/platform/ti/cal/Makefile | 3 +
.../{ti-vpe => ti/cal}/cal-camerarx.c | 0
.../platform/{ti-vpe => ti/cal}/cal-video.c | 0
.../media/platform/{ti-vpe => ti/cal}/cal.c | 0
.../media/platform/{ti-vpe => ti/cal}/cal.h | 0
.../platform/{ti-vpe => ti/cal}/cal_regs.h | 0
.../media/platform/ti/j721e-csi2rx/Makefile | 2 +
.../platform/ti/j721e-csi2rx/j721e-csi2rx.c | 884 ++++++++++++++++++
.../platform/{ti-vpe => ti/vpe}/Makefile | 4 -
.../media/platform/{ti-vpe => ti/vpe}/csc.c | 0
.../media/platform/{ti-vpe => ti/vpe}/csc.h | 0
.../media/platform/{ti-vpe => ti/vpe}/sc.c | 0
.../media/platform/{ti-vpe => ti/vpe}/sc.h | 0
.../platform/{ti-vpe => ti/vpe}/sc_coeff.h | 0
.../media/platform/{ti-vpe => ti/vpe}/vpdma.c | 0
.../media/platform/{ti-vpe => ti/vpe}/vpdma.h | 0
.../platform/{ti-vpe => ti/vpe}/vpdma_priv.h | 0
.../media/platform/{ti-vpe => ti/vpe}/vpe.c | 0
.../platform/{ti-vpe => ti/vpe}/vpe_regs.h | 0
drivers/phy/cadence/cdns-dphy.c | 407 +++++++-
include/linux/phy/phy-mipi-dphy.h | 13 +
34 files changed, 1950 insertions(+), 225 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.txt
create mode 100644 Documentation/devicetree/bindings/media/cdns,csi2rx.yaml
create mode 100644 Documentation/devicetree/bindings/media/ti,j721e-csi2rx.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.txt
create mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.yaml
create mode 100644 drivers/media/platform/ti/Makefile
create mode 100644 drivers/media/platform/ti/cal/Makefile
rename drivers/media/platform/{ti-vpe => ti/cal}/cal-camerarx.c (100%)
rename drivers/media/platform/{ti-vpe => ti/cal}/cal-video.c (100%)
rename drivers/media/platform/{ti-vpe => ti/cal}/cal.c (100%)
rename drivers/media/platform/{ti-vpe => ti/cal}/cal.h (100%)
rename drivers/media/platform/{ti-vpe => ti/cal}/cal_regs.h (100%)
create mode 100644 drivers/media/platform/ti/j721e-csi2rx/Makefile
create mode 100644 drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
rename drivers/media/platform/{ti-vpe => ti/vpe}/Makefile (78%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/csc.c (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/csc.h (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/sc.c (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/sc.h (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/sc_coeff.h (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/vpdma.c (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/vpdma.h (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/vpdma_priv.h (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/vpe.c (100%)
rename drivers/media/platform/{ti-vpe => ti/vpe}/vpe_regs.h (100%)

--
2.30.0