1*1f0d40d8SJagan Teki# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*1f0d40d8SJagan Teki%YAML 1.2 3*1f0d40d8SJagan Teki--- 4*1f0d40d8SJagan Teki$id: http://devicetree.org/schemas/display/bridge/samsung,mipi-dsim.yaml# 5*1f0d40d8SJagan Teki$schema: http://devicetree.org/meta-schemas/core.yaml# 6*1f0d40d8SJagan Teki 7*1f0d40d8SJagan Tekititle: Samsung MIPI DSIM bridge controller 8*1f0d40d8SJagan Teki 9*1f0d40d8SJagan Tekimaintainers: 10*1f0d40d8SJagan Teki - Inki Dae <inki.dae@samsung.com> 11*1f0d40d8SJagan Teki - Jagan Teki <jagan@amarulasolutions.com> 12*1f0d40d8SJagan Teki - Marek Szyprowski <m.szyprowski@samsung.com> 13*1f0d40d8SJagan Teki 14*1f0d40d8SJagan Tekidescription: | 15*1f0d40d8SJagan Teki Samsung MIPI DSIM bridge controller can be found it on Exynos 16*1f0d40d8SJagan Teki and i.MX8M Mini/Nano/Plus SoC's. 17*1f0d40d8SJagan Teki 18*1f0d40d8SJagan Tekiproperties: 19*1f0d40d8SJagan Teki compatible: 20*1f0d40d8SJagan Teki oneOf: 21*1f0d40d8SJagan Teki - enum: 22*1f0d40d8SJagan Teki - samsung,exynos3250-mipi-dsi 23*1f0d40d8SJagan Teki - samsung,exynos4210-mipi-dsi 24*1f0d40d8SJagan Teki - samsung,exynos5410-mipi-dsi 25*1f0d40d8SJagan Teki - samsung,exynos5422-mipi-dsi 26*1f0d40d8SJagan Teki - samsung,exynos5433-mipi-dsi 27*1f0d40d8SJagan Teki - fsl,imx8mm-mipi-dsim 28*1f0d40d8SJagan Teki - fsl,imx8mp-mipi-dsim 29*1f0d40d8SJagan Teki - items: 30*1f0d40d8SJagan Teki - const: fsl,imx8mn-mipi-dsim 31*1f0d40d8SJagan Teki - const: fsl,imx8mm-mipi-dsim 32*1f0d40d8SJagan Teki 33*1f0d40d8SJagan Teki reg: 34*1f0d40d8SJagan Teki maxItems: 1 35*1f0d40d8SJagan Teki 36*1f0d40d8SJagan Teki interrupts: 37*1f0d40d8SJagan Teki maxItems: 1 38*1f0d40d8SJagan Teki 39*1f0d40d8SJagan Teki '#address-cells': 40*1f0d40d8SJagan Teki const: 1 41*1f0d40d8SJagan Teki 42*1f0d40d8SJagan Teki '#size-cells': 43*1f0d40d8SJagan Teki const: 0 44*1f0d40d8SJagan Teki 45*1f0d40d8SJagan Teki clocks: 46*1f0d40d8SJagan Teki minItems: 2 47*1f0d40d8SJagan Teki maxItems: 5 48*1f0d40d8SJagan Teki 49*1f0d40d8SJagan Teki clock-names: 50*1f0d40d8SJagan Teki minItems: 2 51*1f0d40d8SJagan Teki maxItems: 5 52*1f0d40d8SJagan Teki 53*1f0d40d8SJagan Teki samsung,phy-type: 54*1f0d40d8SJagan Teki $ref: /schemas/types.yaml#/definitions/uint32 55*1f0d40d8SJagan Teki description: phandle to the samsung phy-type 56*1f0d40d8SJagan Teki 57*1f0d40d8SJagan Teki power-domains: 58*1f0d40d8SJagan Teki maxItems: 1 59*1f0d40d8SJagan Teki 60*1f0d40d8SJagan Teki samsung,power-domain: 61*1f0d40d8SJagan Teki $ref: /schemas/types.yaml#/definitions/phandle 62*1f0d40d8SJagan Teki description: phandle to the associated samsung power domain 63*1f0d40d8SJagan Teki 64*1f0d40d8SJagan Teki vddcore-supply: 65*1f0d40d8SJagan Teki description: MIPI DSIM Core voltage supply (e.g. 1.1V) 66*1f0d40d8SJagan Teki 67*1f0d40d8SJagan Teki vddio-supply: 68*1f0d40d8SJagan Teki description: MIPI DSIM I/O and PLL voltage supply (e.g. 1.8V) 69*1f0d40d8SJagan Teki 70*1f0d40d8SJagan Teki samsung,burst-clock-frequency: 71*1f0d40d8SJagan Teki $ref: /schemas/types.yaml#/definitions/uint32 72*1f0d40d8SJagan Teki description: 73*1f0d40d8SJagan Teki DSIM high speed burst mode frequency. If absent, 74*1f0d40d8SJagan Teki the pixel clock from the attached device or bridge 75*1f0d40d8SJagan Teki will be used instead. 76*1f0d40d8SJagan Teki 77*1f0d40d8SJagan Teki samsung,esc-clock-frequency: 78*1f0d40d8SJagan Teki $ref: /schemas/types.yaml#/definitions/uint32 79*1f0d40d8SJagan Teki description: 80*1f0d40d8SJagan Teki DSIM escape mode frequency. 81*1f0d40d8SJagan Teki 82*1f0d40d8SJagan Teki samsung,pll-clock-frequency: 83*1f0d40d8SJagan Teki $ref: /schemas/types.yaml#/definitions/uint32 84*1f0d40d8SJagan Teki description: 85*1f0d40d8SJagan Teki DSIM oscillator clock frequency. If absent, the clock frequency 86*1f0d40d8SJagan Teki of sclk_mipi will be used instead. 87*1f0d40d8SJagan Teki 88*1f0d40d8SJagan Teki phys: 89*1f0d40d8SJagan Teki maxItems: 1 90*1f0d40d8SJagan Teki 91*1f0d40d8SJagan Teki phy-names: 92*1f0d40d8SJagan Teki const: dsim 93*1f0d40d8SJagan Teki 94*1f0d40d8SJagan Teki ports: 95*1f0d40d8SJagan Teki $ref: /schemas/graph.yaml#/properties/ports 96*1f0d40d8SJagan Teki 97*1f0d40d8SJagan Teki properties: 98*1f0d40d8SJagan Teki port@0: 99*1f0d40d8SJagan Teki $ref: /schemas/graph.yaml#/properties/port 100*1f0d40d8SJagan Teki description: 101*1f0d40d8SJagan Teki Input port node to receive pixel data from the 102*1f0d40d8SJagan Teki display controller. Exactly one endpoint must be 103*1f0d40d8SJagan Teki specified. 104*1f0d40d8SJagan Teki 105*1f0d40d8SJagan Teki port@1: 106*1f0d40d8SJagan Teki $ref: /schemas/graph.yaml#/$defs/port-base 107*1f0d40d8SJagan Teki unevaluatedProperties: false 108*1f0d40d8SJagan Teki description: 109*1f0d40d8SJagan Teki DSI output port node to the panel or the next bridge 110*1f0d40d8SJagan Teki in the chain. 111*1f0d40d8SJagan Teki 112*1f0d40d8SJagan Teki properties: 113*1f0d40d8SJagan Teki endpoint: 114*1f0d40d8SJagan Teki $ref: /schemas/media/video-interfaces.yaml# 115*1f0d40d8SJagan Teki unevaluatedProperties: false 116*1f0d40d8SJagan Teki 117*1f0d40d8SJagan Teki properties: 118*1f0d40d8SJagan Teki data-lanes: 119*1f0d40d8SJagan Teki minItems: 1 120*1f0d40d8SJagan Teki maxItems: 4 121*1f0d40d8SJagan Teki uniqueItems: true 122*1f0d40d8SJagan Teki items: 123*1f0d40d8SJagan Teki enum: [ 1, 2, 3, 4 ] 124*1f0d40d8SJagan Teki 125*1f0d40d8SJagan Teki lane-polarities: 126*1f0d40d8SJagan Teki minItems: 1 127*1f0d40d8SJagan Teki maxItems: 5 128*1f0d40d8SJagan Teki description: 129*1f0d40d8SJagan Teki The Samsung MIPI DSI IP requires that all the data lanes have 130*1f0d40d8SJagan Teki the same polarity. 131*1f0d40d8SJagan Teki 132*1f0d40d8SJagan Teki dependencies: 133*1f0d40d8SJagan Teki lane-polarities: [data-lanes] 134*1f0d40d8SJagan Teki 135*1f0d40d8SJagan Tekirequired: 136*1f0d40d8SJagan Teki - clock-names 137*1f0d40d8SJagan Teki - clocks 138*1f0d40d8SJagan Teki - compatible 139*1f0d40d8SJagan Teki - interrupts 140*1f0d40d8SJagan Teki - reg 141*1f0d40d8SJagan Teki - samsung,esc-clock-frequency 142*1f0d40d8SJagan Teki 143*1f0d40d8SJagan TekiallOf: 144*1f0d40d8SJagan Teki - $ref: ../dsi-controller.yaml# 145*1f0d40d8SJagan Teki - if: 146*1f0d40d8SJagan Teki properties: 147*1f0d40d8SJagan Teki compatible: 148*1f0d40d8SJagan Teki contains: 149*1f0d40d8SJagan Teki const: samsung,exynos5433-mipi-dsi 150*1f0d40d8SJagan Teki 151*1f0d40d8SJagan Teki then: 152*1f0d40d8SJagan Teki properties: 153*1f0d40d8SJagan Teki clocks: 154*1f0d40d8SJagan Teki minItems: 5 155*1f0d40d8SJagan Teki 156*1f0d40d8SJagan Teki clock-names: 157*1f0d40d8SJagan Teki items: 158*1f0d40d8SJagan Teki - const: bus_clk 159*1f0d40d8SJagan Teki - const: phyclk_mipidphy0_bitclkdiv8 160*1f0d40d8SJagan Teki - const: phyclk_mipidphy0_rxclkesc0 161*1f0d40d8SJagan Teki - const: sclk_rgb_vclk_to_dsim0 162*1f0d40d8SJagan Teki - const: sclk_mipi 163*1f0d40d8SJagan Teki 164*1f0d40d8SJagan Teki ports: 165*1f0d40d8SJagan Teki required: 166*1f0d40d8SJagan Teki - port@0 167*1f0d40d8SJagan Teki 168*1f0d40d8SJagan Teki required: 169*1f0d40d8SJagan Teki - ports 170*1f0d40d8SJagan Teki - vddcore-supply 171*1f0d40d8SJagan Teki - vddio-supply 172*1f0d40d8SJagan Teki 173*1f0d40d8SJagan Teki - if: 174*1f0d40d8SJagan Teki properties: 175*1f0d40d8SJagan Teki compatible: 176*1f0d40d8SJagan Teki contains: 177*1f0d40d8SJagan Teki const: samsung,exynos5410-mipi-dsi 178*1f0d40d8SJagan Teki 179*1f0d40d8SJagan Teki then: 180*1f0d40d8SJagan Teki properties: 181*1f0d40d8SJagan Teki clocks: 182*1f0d40d8SJagan Teki minItems: 2 183*1f0d40d8SJagan Teki 184*1f0d40d8SJagan Teki clock-names: 185*1f0d40d8SJagan Teki items: 186*1f0d40d8SJagan Teki - const: bus_clk 187*1f0d40d8SJagan Teki - const: pll_clk 188*1f0d40d8SJagan Teki 189*1f0d40d8SJagan Teki required: 190*1f0d40d8SJagan Teki - vddcore-supply 191*1f0d40d8SJagan Teki - vddio-supply 192*1f0d40d8SJagan Teki 193*1f0d40d8SJagan Teki - if: 194*1f0d40d8SJagan Teki properties: 195*1f0d40d8SJagan Teki compatible: 196*1f0d40d8SJagan Teki contains: 197*1f0d40d8SJagan Teki const: samsung,exynos4210-mipi-dsi 198*1f0d40d8SJagan Teki 199*1f0d40d8SJagan Teki then: 200*1f0d40d8SJagan Teki properties: 201*1f0d40d8SJagan Teki clocks: 202*1f0d40d8SJagan Teki minItems: 2 203*1f0d40d8SJagan Teki 204*1f0d40d8SJagan Teki clock-names: 205*1f0d40d8SJagan Teki items: 206*1f0d40d8SJagan Teki - const: bus_clk 207*1f0d40d8SJagan Teki - const: sclk_mipi 208*1f0d40d8SJagan Teki 209*1f0d40d8SJagan Teki required: 210*1f0d40d8SJagan Teki - vddcore-supply 211*1f0d40d8SJagan Teki - vddio-supply 212*1f0d40d8SJagan Teki 213*1f0d40d8SJagan Teki - if: 214*1f0d40d8SJagan Teki properties: 215*1f0d40d8SJagan Teki compatible: 216*1f0d40d8SJagan Teki contains: 217*1f0d40d8SJagan Teki const: samsung,exynos3250-mipi-dsi 218*1f0d40d8SJagan Teki 219*1f0d40d8SJagan Teki then: 220*1f0d40d8SJagan Teki properties: 221*1f0d40d8SJagan Teki clocks: 222*1f0d40d8SJagan Teki minItems: 2 223*1f0d40d8SJagan Teki 224*1f0d40d8SJagan Teki clock-names: 225*1f0d40d8SJagan Teki items: 226*1f0d40d8SJagan Teki - const: bus_clk 227*1f0d40d8SJagan Teki - const: pll_clk 228*1f0d40d8SJagan Teki 229*1f0d40d8SJagan Teki required: 230*1f0d40d8SJagan Teki - vddcore-supply 231*1f0d40d8SJagan Teki - vddio-supply 232*1f0d40d8SJagan Teki - samsung,phy-type 233*1f0d40d8SJagan Teki 234*1f0d40d8SJagan TekiadditionalProperties: 235*1f0d40d8SJagan Teki type: object 236*1f0d40d8SJagan Teki 237*1f0d40d8SJagan Tekiexamples: 238*1f0d40d8SJagan Teki - | 239*1f0d40d8SJagan Teki #include <dt-bindings/clock/exynos5433.h> 240*1f0d40d8SJagan Teki #include <dt-bindings/gpio/gpio.h> 241*1f0d40d8SJagan Teki #include <dt-bindings/interrupt-controller/arm-gic.h> 242*1f0d40d8SJagan Teki 243*1f0d40d8SJagan Teki dsi@13900000 { 244*1f0d40d8SJagan Teki compatible = "samsung,exynos5433-mipi-dsi"; 245*1f0d40d8SJagan Teki reg = <0x13900000 0xC0>; 246*1f0d40d8SJagan Teki interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 247*1f0d40d8SJagan Teki phys = <&mipi_phy 1>; 248*1f0d40d8SJagan Teki phy-names = "dsim"; 249*1f0d40d8SJagan Teki clocks = <&cmu_disp CLK_PCLK_DSIM0>, 250*1f0d40d8SJagan Teki <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>, 251*1f0d40d8SJagan Teki <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>, 252*1f0d40d8SJagan Teki <&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>, 253*1f0d40d8SJagan Teki <&cmu_disp CLK_SCLK_DSIM0>; 254*1f0d40d8SJagan Teki clock-names = "bus_clk", 255*1f0d40d8SJagan Teki "phyclk_mipidphy0_bitclkdiv8", 256 "phyclk_mipidphy0_rxclkesc0", 257 "sclk_rgb_vclk_to_dsim0", 258 "sclk_mipi"; 259 power-domains = <&pd_disp>; 260 vddcore-supply = <&ldo6_reg>; 261 vddio-supply = <&ldo7_reg>; 262 samsung,burst-clock-frequency = <512000000>; 263 samsung,esc-clock-frequency = <16000000>; 264 samsung,pll-clock-frequency = <24000000>; 265 pinctrl-names = "default"; 266 pinctrl-0 = <&te_irq>; 267 268 ports { 269 #address-cells = <1>; 270 #size-cells = <0>; 271 272 port@0 { 273 reg = <0>; 274 275 dsi_to_mic: endpoint { 276 remote-endpoint = <&mic_to_dsi>; 277 }; 278 }; 279 }; 280 }; 281