1f9b79898SMaxime Ripard# SPDX-License-Identifier: GPL-2.0 2f9b79898SMaxime Ripard%YAML 1.2 3f9b79898SMaxime Ripard--- 4f9b79898SMaxime Ripard$id: http://devicetree.org/schemas/mmc/mmc-controller.yaml# 5f9b79898SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml# 6f9b79898SMaxime Ripard 7ab040c42SKrzysztof Kozlowskititle: MMC Controller Common Properties 8f9b79898SMaxime Ripard 9f9b79898SMaxime Ripardmaintainers: 10f9b79898SMaxime Ripard - Ulf Hansson <ulf.hansson@linaro.org> 11f9b79898SMaxime Ripard 12f9b79898SMaxime Riparddescription: | 13f9b79898SMaxime Ripard These properties are common to multiple MMC host controllers. Any host 14f9b79898SMaxime Ripard that requires the respective functionality should implement them using 15f9b79898SMaxime Ripard these definitions. 16f9b79898SMaxime Ripard 171796164fSMatthias Schiffer It is possible to assign a fixed index mmcN to an MMC host controller 181796164fSMatthias Schiffer (and the corresponding mmcblkN devices) by defining an alias in the 191796164fSMatthias Schiffer /aliases device tree node. 201796164fSMatthias Schiffer 21f9b79898SMaxime Ripardproperties: 22f9b79898SMaxime Ripard $nodename: 23f9b79898SMaxime Ripard pattern: "^mmc(@.*)?$" 24f9b79898SMaxime Ripard 25f9b79898SMaxime Ripard "#address-cells": 26f9b79898SMaxime Ripard const: 1 27f9b79898SMaxime Ripard description: | 28*0523ac72SNeil Armstrong The cell is the SDIO function number if a function subnode is used. 29f9b79898SMaxime Ripard 30f9b79898SMaxime Ripard "#size-cells": 31f9b79898SMaxime Ripard const: 0 32f9b79898SMaxime Ripard 33f9b79898SMaxime Ripard # Card Detection. 34f9b79898SMaxime Ripard # If none of these properties are supplied, the host native card 35f9b79898SMaxime Ripard # detect will be used. Only one of them should be provided. 36f9b79898SMaxime Ripard 37f9b79898SMaxime Ripard broken-cd: 38f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 39f9b79898SMaxime Ripard description: 40f9b79898SMaxime Ripard There is no card detection available; polling must be used. 41f9b79898SMaxime Ripard 42f9b79898SMaxime Ripard cd-gpios: 430499220dSRob Herring maxItems: 1 44f9b79898SMaxime Ripard description: 45f9b79898SMaxime Ripard The card detection will be done using the GPIO provided. 46f9b79898SMaxime Ripard 47f9b79898SMaxime Ripard non-removable: 48f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 49f9b79898SMaxime Ripard description: 50f9b79898SMaxime Ripard Non-removable slot (like eMMC); assume always present. 51f9b79898SMaxime Ripard 52f9b79898SMaxime Ripard # *NOTE* on CD and WP polarity. To use common for all SD/MMC host 53f9b79898SMaxime Ripard # controllers line polarity properties, we have to fix the meaning 54f9b79898SMaxime Ripard # of the "normal" and "inverted" line levels. We choose to follow 55f9b79898SMaxime Ripard # the SDHCI standard, which specifies both those lines as "active 56f9b79898SMaxime Ripard # low." Therefore, using the "cd-inverted" property means, that the 57f9b79898SMaxime Ripard # CD line is active high, i.e. it is high, when a card is 58f9b79898SMaxime Ripard # inserted. Similar logic applies to the "wp-inverted" property. 59f9b79898SMaxime Ripard # 60f9b79898SMaxime Ripard # CD and WP lines can be implemented on the hardware in one of two 61f9b79898SMaxime Ripard # ways: as GPIOs, specified in cd-gpios and wp-gpios properties, or 62f9b79898SMaxime Ripard # as dedicated pins. Polarity of dedicated pins can be specified, 63f9b79898SMaxime Ripard # using *-inverted properties. GPIO polarity can also be specified 64f9b79898SMaxime Ripard # using the GPIO_ACTIVE_LOW flag. This creates an ambiguity in the 65f9b79898SMaxime Ripard # latter case. We choose to use the XOR logic for GPIO CD and WP 66f9b79898SMaxime Ripard # lines. This means, the two properties are "superimposed," for 67f9b79898SMaxime Ripard # example leaving the GPIO_ACTIVE_LOW flag clear and specifying the 68f9b79898SMaxime Ripard # respective *-inverted property property results in a 69f9b79898SMaxime Ripard # double-inversion and actually means the "normal" line polarity is 70f9b79898SMaxime Ripard # in effect. 71f9b79898SMaxime Ripard wp-inverted: 72f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 73f9b79898SMaxime Ripard description: 74f9b79898SMaxime Ripard The Write Protect line polarity is inverted. 75f9b79898SMaxime Ripard 76f9b79898SMaxime Ripard cd-inverted: 77f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 78f9b79898SMaxime Ripard description: 79f9b79898SMaxime Ripard The CD line polarity is inverted. 80f9b79898SMaxime Ripard 81f9b79898SMaxime Ripard # Other properties 82f9b79898SMaxime Ripard 83f9b79898SMaxime Ripard bus-width: 84f9b79898SMaxime Ripard description: 85f9b79898SMaxime Ripard Number of data lines. 863d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 873d21a460SRob Herring enum: [1, 4, 8] 883d21a460SRob Herring default: 1 89f9b79898SMaxime Ripard 90f9b79898SMaxime Ripard max-frequency: 9152483609SBhupesh Sharma description: | 9252483609SBhupesh Sharma Maximum operating frequency of the bus: 9352483609SBhupesh Sharma - for eMMC, the maximum supported frequency is 200MHz, 9452483609SBhupesh Sharma - for SD/SDIO cards the SDR104 mode has a max supported 9552483609SBhupesh Sharma frequency of 208MHz, 9652483609SBhupesh Sharma - some mmc host controllers do support a max frequency upto 9752483609SBhupesh Sharma 384MHz. 9852483609SBhupesh Sharma So, lets keep the maximum supported value here. 9952483609SBhupesh Sharma 1003d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1013d21a460SRob Herring minimum: 400000 10252483609SBhupesh Sharma maximum: 384000000 103f9b79898SMaxime Ripard 104f9b79898SMaxime Ripard disable-wp: 105f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 106f9b79898SMaxime Ripard description: 107f9b79898SMaxime Ripard When set, no physical write-protect line is present. This 108f9b79898SMaxime Ripard property should only be specified when the controller has a 109c17fc0c9SJohan Jonker dedicated write-protect detection logic. If a GPIO is always used 110f9b79898SMaxime Ripard for the write-protect detection logic, it is sufficient to not 111f9b79898SMaxime Ripard specify the wp-gpios property in the absence of a write-protect 1126d7a1c83SJohan Jonker line. Not used in combination with eMMC or SDIO. 113f9b79898SMaxime Ripard 114f9b79898SMaxime Ripard wp-gpios: 1150499220dSRob Herring maxItems: 1 116f9b79898SMaxime Ripard description: 117f9b79898SMaxime Ripard GPIO to use for the write-protect detection. 118f9b79898SMaxime Ripard 119f9b79898SMaxime Ripard cd-debounce-delay-ms: 120f9b79898SMaxime Ripard description: 121f9b79898SMaxime Ripard Set delay time before detecting card after card insert 122f9b79898SMaxime Ripard interrupt. 123f9b79898SMaxime Ripard 124f9b79898SMaxime Ripard no-1-8-v: 125f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 126f9b79898SMaxime Ripard description: 127f9b79898SMaxime Ripard When specified, denotes that 1.8V card voltage is not supported 128f9b79898SMaxime Ripard on this system, even if the controller claims it. 129f9b79898SMaxime Ripard 130f9b79898SMaxime Ripard cap-sd-highspeed: 131f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 132f9b79898SMaxime Ripard description: 133f9b79898SMaxime Ripard SD high-speed timing is supported. 134f9b79898SMaxime Ripard 135f9b79898SMaxime Ripard cap-mmc-highspeed: 136f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 137f9b79898SMaxime Ripard description: 138f9b79898SMaxime Ripard MMC high-speed timing is supported. 139f9b79898SMaxime Ripard 140f9b79898SMaxime Ripard sd-uhs-sdr12: 141f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 142f9b79898SMaxime Ripard description: 143f9b79898SMaxime Ripard SD UHS SDR12 speed is supported. 144f9b79898SMaxime Ripard 145f9b79898SMaxime Ripard sd-uhs-sdr25: 146f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 147f9b79898SMaxime Ripard description: 148f9b79898SMaxime Ripard SD UHS SDR25 speed is supported. 149f9b79898SMaxime Ripard 150f9b79898SMaxime Ripard sd-uhs-sdr50: 151f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 152f9b79898SMaxime Ripard description: 153f9b79898SMaxime Ripard SD UHS SDR50 speed is supported. 154f9b79898SMaxime Ripard 155f9b79898SMaxime Ripard sd-uhs-sdr104: 156f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 157f9b79898SMaxime Ripard description: 158f9b79898SMaxime Ripard SD UHS SDR104 speed is supported. 159f9b79898SMaxime Ripard 160f9b79898SMaxime Ripard sd-uhs-ddr50: 161f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 162f9b79898SMaxime Ripard description: 163f9b79898SMaxime Ripard SD UHS DDR50 speed is supported. 164f9b79898SMaxime Ripard 165f9b79898SMaxime Ripard cap-power-off-card: 166f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 167f9b79898SMaxime Ripard description: 168f9b79898SMaxime Ripard Powering off the card is safe. 169f9b79898SMaxime Ripard 170f9b79898SMaxime Ripard cap-mmc-hw-reset: 171f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 172f9b79898SMaxime Ripard description: 173f9b79898SMaxime Ripard eMMC hardware reset is supported 174f9b79898SMaxime Ripard 175f9b79898SMaxime Ripard cap-sdio-irq: 176f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 177f9b79898SMaxime Ripard description: 178f9b79898SMaxime Ripard enable SDIO IRQ signalling on this interface 179f9b79898SMaxime Ripard 180f9b79898SMaxime Ripard full-pwr-cycle: 181f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 182f9b79898SMaxime Ripard description: 183f9b79898SMaxime Ripard Full power cycle of the card is supported. 184f9b79898SMaxime Ripard 185ba26e91dSYoshihiro Shimoda full-pwr-cycle-in-suspend: 186ba26e91dSYoshihiro Shimoda $ref: /schemas/types.yaml#/definitions/flag 187ba26e91dSYoshihiro Shimoda description: 188ba26e91dSYoshihiro Shimoda Full power cycle of the card in suspend is supported. 189ba26e91dSYoshihiro Shimoda 190f9b79898SMaxime Ripard mmc-ddr-1_2v: 191f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 192f9b79898SMaxime Ripard description: 193f9b79898SMaxime Ripard eMMC high-speed DDR mode (1.2V I/O) is supported. 194f9b79898SMaxime Ripard 195f9b79898SMaxime Ripard mmc-ddr-1_8v: 196f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 197f9b79898SMaxime Ripard description: 198f9b79898SMaxime Ripard eMMC high-speed DDR mode (1.8V I/O) is supported. 199f9b79898SMaxime Ripard 200f9b79898SMaxime Ripard mmc-ddr-3_3v: 201f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 202f9b79898SMaxime Ripard description: 203f9b79898SMaxime Ripard eMMC high-speed DDR mode (3.3V I/O) is supported. 204f9b79898SMaxime Ripard 205f9b79898SMaxime Ripard mmc-hs200-1_2v: 206f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 207f9b79898SMaxime Ripard description: 208f9b79898SMaxime Ripard eMMC HS200 mode (1.2V I/O) is supported. 209f9b79898SMaxime Ripard 210f9b79898SMaxime Ripard mmc-hs200-1_8v: 211f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 212f9b79898SMaxime Ripard description: 213f9b79898SMaxime Ripard eMMC HS200 mode (1.8V I/O) is supported. 214f9b79898SMaxime Ripard 215f9b79898SMaxime Ripard mmc-hs400-1_2v: 216f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 217f9b79898SMaxime Ripard description: 218f9b79898SMaxime Ripard eMMC HS400 mode (1.2V I/O) is supported. 219f9b79898SMaxime Ripard 220f9b79898SMaxime Ripard mmc-hs400-1_8v: 221f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 222f9b79898SMaxime Ripard description: 223f9b79898SMaxime Ripard eMMC HS400 mode (1.8V I/O) is supported. 224f9b79898SMaxime Ripard 225f9b79898SMaxime Ripard mmc-hs400-enhanced-strobe: 226f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 227f9b79898SMaxime Ripard description: 228f9b79898SMaxime Ripard eMMC HS400 enhanced strobe mode is supported 229f9b79898SMaxime Ripard 2304d895de3SLucas Stach no-mmc-hs400: 2314d895de3SLucas Stach $ref: /schemas/types.yaml#/definitions/flag 2324d895de3SLucas Stach description: 2334d895de3SLucas Stach All eMMC HS400 modes are not supported. 2344d895de3SLucas Stach 235f9b79898SMaxime Ripard dsr: 236f9b79898SMaxime Ripard description: 237f9b79898SMaxime Ripard Value the card Driver Stage Register (DSR) should be programmed 238f9b79898SMaxime Ripard with. 2393d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 2403d21a460SRob Herring minimum: 0 2413d21a460SRob Herring maximum: 0xffff 242f9b79898SMaxime Ripard 243f9b79898SMaxime Ripard no-sdio: 244f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 245f9b79898SMaxime Ripard description: 246f9b79898SMaxime Ripard Controller is limited to send SDIO commands during 247f9b79898SMaxime Ripard initialization. 248f9b79898SMaxime Ripard 249f9b79898SMaxime Ripard no-sd: 250f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 251f9b79898SMaxime Ripard description: 252f9b79898SMaxime Ripard Controller is limited to send SD commands during initialization. 253f9b79898SMaxime Ripard 254f9b79898SMaxime Ripard no-mmc: 255f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 256f9b79898SMaxime Ripard description: 257f9b79898SMaxime Ripard Controller is limited to send MMC commands during 258f9b79898SMaxime Ripard initialization. 259f9b79898SMaxime Ripard 260f9b79898SMaxime Ripard fixed-emmc-driver-type: 261f9b79898SMaxime Ripard description: 262f9b79898SMaxime Ripard For non-removable eMMC, enforce this driver type. The value is 263f9b79898SMaxime Ripard the driver type as specified in the eMMC specification (table 264f9b79898SMaxime Ripard 206 in spec version 5.1) 2653d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 2663d21a460SRob Herring minimum: 0 2673d21a460SRob Herring maximum: 4 268f9b79898SMaxime Ripard 269f9b79898SMaxime Ripard post-power-on-delay-ms: 270f9b79898SMaxime Ripard description: 271f9b79898SMaxime Ripard It was invented for MMC pwrseq-simple which could be referred to 272b4120b69SGuido Günther mmc-pwrseq-simple.yaml. But now it\'s reused as a tunable delay 273f9b79898SMaxime Ripard waiting for I/O signalling and card power supply to be stable, 274f9b79898SMaxime Ripard regardless of whether pwrseq-simple is used. Default to 10ms if 275f9b79898SMaxime Ripard no available. 2763d21a460SRob Herring default: 10 277f9b79898SMaxime Ripard 278f9b79898SMaxime Ripard supports-cqe: 279f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 280f9b79898SMaxime Ripard description: 281f9b79898SMaxime Ripard The presence of this property indicates that the corresponding 282f9b79898SMaxime Ripard MMC host controller supports HW command queue feature. 283f9b79898SMaxime Ripard 284f9b79898SMaxime Ripard disable-cqe-dcmd: 285f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 286f9b79898SMaxime Ripard description: 287f9b79898SMaxime Ripard The presence of this property indicates that the MMC 288f9b79898SMaxime Ripard controller\'s command queue engine (CQE) does not support direct 289f9b79898SMaxime Ripard commands (DCMDs). 290f9b79898SMaxime Ripard 291f9b79898SMaxime Ripard keep-power-in-suspend: 292f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 293f9b79898SMaxime Ripard description: 294f9b79898SMaxime Ripard SDIO only. Preserves card power during a suspend/resume cycle. 295f9b79898SMaxime Ripard 296f9b79898SMaxime Ripard wakeup-source: 297f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/flag 298f9b79898SMaxime Ripard description: 299f9b79898SMaxime Ripard SDIO only. Enables wake up of host system on SDIO IRQ assertion. 300f9b79898SMaxime Ripard 301f9b79898SMaxime Ripard vmmc-supply: 302f9b79898SMaxime Ripard description: 303f9b79898SMaxime Ripard Supply for the card power 304f9b79898SMaxime Ripard 305f9b79898SMaxime Ripard vqmmc-supply: 306f9b79898SMaxime Ripard description: 307de6e855bSLinus Walleij Supply for the bus IO line power, such as a level shifter. 308de6e855bSLinus Walleij If the level shifter is controlled by a GPIO line, this shall 309de6e855bSLinus Walleij be modeled as a "regulator-fixed" with a GPIO line for 310de6e855bSLinus Walleij switching the level shifter on/off. 311f9b79898SMaxime Ripard 312f9b79898SMaxime Ripard mmc-pwrseq: 313f9b79898SMaxime Ripard $ref: /schemas/types.yaml#/definitions/phandle 314f9b79898SMaxime Ripard description: 315f9b79898SMaxime Ripard System-on-Chip designs may specify a specific MMC power 316f9b79898SMaxime Ripard sequence. To successfully detect an (e)MMC/SD/SDIO card, that 317f9b79898SMaxime Ripard power sequence must be maintained while initializing the card. 318f9b79898SMaxime Ripard 319f9b79898SMaxime RipardpatternProperties: 320f9b79898SMaxime Ripard "^.*@[0-9]+$": 321f9b79898SMaxime Ripard type: object 322f9b79898SMaxime Ripard description: | 323f9b79898SMaxime Ripard On embedded systems the cards connected to a host may need 324f9b79898SMaxime Ripard additional properties. These can be specified in subnodes to the 325f9b79898SMaxime Ripard host controller node. The subnodes are identified by the 326f9b79898SMaxime Ripard standard \'reg\' property. Which information exactly can be 327f9b79898SMaxime Ripard specified depends on the bindings for the SDIO function driver 328f9b79898SMaxime Ripard for the subnode, as specified by the compatible string. 329f9b79898SMaxime Ripard 330f9b79898SMaxime Ripard properties: 331f9b79898SMaxime Ripard compatible: 332f9b79898SMaxime Ripard description: | 333f9b79898SMaxime Ripard Name of SDIO function following generic names recommended 334f9b79898SMaxime Ripard practice 335f9b79898SMaxime Ripard 336f9b79898SMaxime Ripard reg: 337f9b79898SMaxime Ripard items: 338f9b79898SMaxime Ripard - minimum: 0 339f9b79898SMaxime Ripard maximum: 7 340f9b79898SMaxime Ripard description: 341f9b79898SMaxime Ripard Must contain the SDIO function number of the function this 342f9b79898SMaxime Ripard subnode describes. A value of 0 denotes the memory SD 343f9b79898SMaxime Ripard function, values from 1 to 7 denote the SDIO functions. 344f9b79898SMaxime Ripard 345f9b79898SMaxime Ripard required: 346f9b79898SMaxime Ripard - reg 347f9b79898SMaxime Ripard 348fec81c5bSManish Narani "^clk-phase-(legacy|sd-hs|mmc-(hs|hs[24]00|ddr52)|uhs-(sdr(12|25|50|104)|ddr50))$": 3493d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-array 3503d21a460SRob Herring 351fec81c5bSManish Narani minItems: 2 352fec81c5bSManish Narani maxItems: 2 353def7bd94SManish Narani items: 354def7bd94SManish Narani minimum: 0 355fec81c5bSManish Narani maximum: 359 356fec81c5bSManish Narani description: 357fec81c5bSManish Narani Set the clock (phase) delays which are to be configured in the 358fec81c5bSManish Narani controller while switching to particular speed mode. These values 359fec81c5bSManish Narani are in pair of degrees. 360fec81c5bSManish Narani 361f9b79898SMaxime Riparddependencies: 362f9b79898SMaxime Ripard cd-debounce-delay-ms: [ cd-gpios ] 363f9b79898SMaxime Ripard fixed-emmc-driver-type: [ non-removable ] 364f9b79898SMaxime Ripard 3656a0e321eSRob HerringadditionalProperties: true 3666a0e321eSRob Herring 367f9b79898SMaxime Ripardexamples: 368f9b79898SMaxime Ripard - | 369f9b79898SMaxime Ripard mmc3: mmc@1c12000 { 370f9b79898SMaxime Ripard #address-cells = <1>; 371f9b79898SMaxime Ripard #size-cells = <0>; 37251a21e0eSRob Herring reg = <0x1c12000 0x200>; 373f9b79898SMaxime Ripard pinctrl-names = "default"; 374f9b79898SMaxime Ripard pinctrl-0 = <&mmc3_pins_a>; 375f9b79898SMaxime Ripard vmmc-supply = <®_vmmc3>; 376f9b79898SMaxime Ripard bus-width = <4>; 377f9b79898SMaxime Ripard non-removable; 378f9b79898SMaxime Ripard mmc-pwrseq = <&sdhci0_pwrseq>; 379f9b79898SMaxime Ripard 3801e9daaf6SRob Herring brcmf: wifi@1 { 381f9b79898SMaxime Ripard reg = <1>; 3821e9daaf6SRob Herring compatible = "brcm,bcm4329-fmac"; 383f9b79898SMaxime Ripard interrupt-parent = <&pio>; 384f9b79898SMaxime Ripard interrupts = <10 8>; 385f9b79898SMaxime Ripard interrupt-names = "host-wake"; 386f9b79898SMaxime Ripard }; 387f9b79898SMaxime Ripard }; 388