Commit 35106dd3 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'exynos-drm-misc-next-for-v6.18' of...

Merge tag 'exynos-drm-misc-next-for-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos

 into drm-next

New feature
- Add DSIM bridge driver support for Exynos7870
  . Introduces Exynos7870 DSIM IP block support in the samsung-dsim bridge driver.
- Document Exynos7870 DSIM compatible in dt-bindings
  . Adds exynos7870 compatible string and required clocks in device tree schema.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Inki Dae <inki.dae@samsung.com>
Link: https://lore.kernel.org/r/20250915111802.28177-1-inki.dae@samsung.com
parents 8299ee7f 77169a11
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ properties:
          - samsung,exynos5410-mipi-dsi
          - samsung,exynos5422-mipi-dsi
          - samsung,exynos5433-mipi-dsi
          - samsung,exynos7870-mipi-dsi
          - fsl,imx8mm-mipi-dsim
          - fsl,imx8mp-mipi-dsim
      - items:
@@ -144,6 +145,32 @@ required:

allOf:
  - $ref: ../dsi-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos7870-mipi-dsi

    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4

        clock-names:
          items:
            - const: bus
            - const: pll
            - const: byte
            - const: esc

        ports:
          required:
            - port@0

      required:
        - ports

  - if:
      properties:
        compatible:
+266 −87

File changed.

Preview size limit exceeded, changes collapsed.

+15 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ enum samsung_dsim_type {
	DSIM_TYPE_EXYNOS5410,
	DSIM_TYPE_EXYNOS5422,
	DSIM_TYPE_EXYNOS5433,
	DSIM_TYPE_EXYNOS7870,
	DSIM_TYPE_IMX8MM,
	DSIM_TYPE_IMX8MP,
	DSIM_TYPE_COUNT,
@@ -53,15 +54,29 @@ struct samsung_dsim_transfer {
struct samsung_dsim_driver_data {
	const unsigned int *reg_ofs;
	unsigned int plltmr_reg;
	unsigned int has_legacy_status_reg:1;
	unsigned int has_freqband:1;
	unsigned int has_clklane_stop:1;
	unsigned int has_broken_fifoctrl_emptyhdr:1;
	unsigned int has_sfrctrl:1;
	struct clk_bulk_data *clk_data;
	unsigned int num_clks;
	unsigned int min_freq;
	unsigned int max_freq;
	unsigned int wait_for_hdr_fifo;
	unsigned int wait_for_reset;
	unsigned int num_bits_resol;
	unsigned int video_mode_bit;
	unsigned int pll_stable_bit;
	unsigned int esc_clken_bit;
	unsigned int byte_clken_bit;
	unsigned int tx_req_hsclk_bit;
	unsigned int lane_esc_clk_bit;
	unsigned int lane_esc_data_offset;
	unsigned int pll_p_offset;
	unsigned int pll_m_offset;
	unsigned int pll_s_offset;
	unsigned int main_vsa_offset;
	const unsigned int *reg_values;
	unsigned int pll_fin_min;
	unsigned int pll_fin_max;
@@ -91,7 +106,6 @@ struct samsung_dsim {

	void __iomem *reg_base;
	struct phy *phy;
	struct clk **clks;
	struct clk *pll_clk;
	struct regulator_bulk_data supplies[2];
	int irq;