[PATCH v4 0/3] phy: mtk-mipi-csi: add driver for CSI phy

From: Julien Stephan
Date: Tue Jun 20 2023 - 08:20:08 EST


Adding a new driver for the MIPI CSI CD-PHY module v 0.5 embedded in
some Mediatek soc, such as the MT8365

This driver was adapted from https://patchwork.kernel.org/project/linux-mediatek/cover/20200708104023.3225-1-louis.kuo@xxxxxxxxxxxx/

v1 can be found here: https://lore.kernel.org/all/20230403071929.360911-1-jstephan@xxxxxxxxxxxx/

v2 can be found here: https://lore.kernel.org/all/20230515090551.1251389-1-jstephan@xxxxxxxxxxxx/

v3 can be found here: https://lore.kernel.org/all/20230524083033.486490-1-jstephan@xxxxxxxxxxxx/

Changelog
Changes in v4:
include/dt-bindings/phy/phy.h:
- remove commit adding PHY_TYPE_CDPHY definition

Binding file:
- use the standard phy-type property instead of a custom one so
rename mediatek,phy-type -> phy-type
- phy-type property is made optional: when present, describes the
phy type and the operating mode
- phy-cell is modified to accept a phy argument representing the
phy operating mode if phy-type is not specified
- adding new property num-lanes

Driver:
- add a custom xlate function to handle phy cells
- update probe function to retrieve the new value phy-type
instead of the mediatek,phy-type
- remove useless struct define `struct mtk_mipi_dphy;`
- rename some functin/variable from `xx_dphy_xx` to `xx_cdphy_xx`
- update probe function to read num-lanes property

Changes in v3:
Binding file:
- rename compatible string
mediatek,phy-mipi-csi-0-5 -> mediatek,mt8365-csi-rx
- rename binding file to be as compatible string
- change property mediatek,is_cdphy -> mediatek,phy-type using an
enum value instead of boolean for scalability
- remove status property from example nodes
- rename example node name 'mipi_rx_csi0: mipi_rx_csi0@11c10000' ->
'csi0_rx: phy@11c10000'
- put reg address in lower case

include/dt-bindings/phy/phy.h:
- add PHY_TYPE_CDPHY definition

Driver:
- rename compatible string
- rename property mediatek,is_cdphy -> mediatek,phy-type
- rename CSIx* macro to CSIX* (x -> X)
- fix style issue on the driver data structure
- update MODULE_DESCRIPTION as suggested by Angelo
and update the kconfig module description to match it
- add dphy /cdphy eq tuning function to factor the code
and increase readability
- fix typo __PHY_MTK__MIPI_CSI__C_0_5_RX_REG_H_ -->
__PHY_MTK_MIPI_CSI_V_0_5_RX_REG_H_
- reword commit message to update my contributions
- added missing copyright
- added module name in Kconfig

Changes in v2:
- fix all comments on bindings
- move the binding chunk from driver to binding commit
- fix dt_binding_check error (reported by DT_CHECKER_FLAGS)
- use a more generic compatible string
- add a new dt properties to simplify the driver
"mediatek,is_cdphy"
- rename the driver and the corresponding file to include
version
- drop of_match_ptr()
- use devm_platform_ioremap_resource
- use phy-mtk-io.h api instead of regmap
- rework the driver to use dt nodes to declare PHY instead of an
array in the driver
- remove useless define for unused registers
- remove support for CSI0A/B because it cannot be tested, and it
simplifies the driver for a first review
- edit commit message and bindings to be more descriptive about the
hardware


Florian Sylvestre (1):
dt-bindings: phy: add mediatek MIPI CD-PHY module v0.5

Julien Stephan (1):
phy use phy-type

Phi-bang Nguyen (1):
phy: mtk-mipi-csi: add driver for CSI phy

.../bindings/phy/mediatek,mt8365-csi-rx.yaml | 73 ++++
MAINTAINERS | 7 +
drivers/phy/mediatek/Kconfig | 12 +
drivers/phy/mediatek/Makefile | 2 +
.../mediatek/phy-mtk-mipi-csi-0-5-rx-reg.h | 62 ++++
drivers/phy/mediatek/phy-mtk-mipi-csi-0-5.c | 331 ++++++++++++++++++
6 files changed, 487 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/mediatek,mt8365-csi-rx.yaml
create mode 100644 drivers/phy/mediatek/phy-mtk-mipi-csi-0-5-rx-reg.h
create mode 100644 drivers/phy/mediatek/phy-mtk-mipi-csi-0-5.c

--




2.41.0