xref: /freebsd/sys/contrib/device-tree/Bindings/mmc/amlogic,meson-mx-sdio.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
12846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22846c905SEmmanuel Vadot%YAML 1.2
32846c905SEmmanuel Vadot---
42846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/mmc/amlogic,meson-mx-sdio.yaml#
52846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62846c905SEmmanuel Vadot
72846c905SEmmanuel Vadottitle: Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller
82846c905SEmmanuel Vadot
92846c905SEmmanuel Vadotdescription: |
102846c905SEmmanuel Vadot  The highspeed MMC host controller on Amlogic SoCs provides an interface
112846c905SEmmanuel Vadot  for MMC, SD, SDIO and SDHC types of memory cards.
122846c905SEmmanuel Vadot
132846c905SEmmanuel Vadot  Supported maximum speeds are the ones of the eMMC standard 4.41 as well
142846c905SEmmanuel Vadot  as the speed of SD standard 2.0.
152846c905SEmmanuel Vadot
162846c905SEmmanuel Vadot  The hardware provides an internal "mux" which allows up to three slots
172846c905SEmmanuel Vadot  to be controlled. Only one slot can be accessed at a time.
182846c905SEmmanuel Vadot
192846c905SEmmanuel Vadotmaintainers:
202846c905SEmmanuel Vadot  - Neil Armstrong <neil.armstrong@linaro.org>
212846c905SEmmanuel Vadot
222846c905SEmmanuel Vadotproperties:
232846c905SEmmanuel Vadot  compatible:
242846c905SEmmanuel Vadot    items:
252846c905SEmmanuel Vadot      - enum:
262846c905SEmmanuel Vadot          - amlogic,meson8-sdio
272846c905SEmmanuel Vadot          - amlogic,meson8b-sdio
282846c905SEmmanuel Vadot      - const: amlogic,meson-mx-sdio
292846c905SEmmanuel Vadot
302846c905SEmmanuel Vadot  reg:
312846c905SEmmanuel Vadot    maxItems: 1
322846c905SEmmanuel Vadot
332846c905SEmmanuel Vadot  interrupts:
342846c905SEmmanuel Vadot    maxItems: 1
352846c905SEmmanuel Vadot
362846c905SEmmanuel Vadot  clocks:
372846c905SEmmanuel Vadot    maxItems: 2
382846c905SEmmanuel Vadot
392846c905SEmmanuel Vadot  clock-names:
402846c905SEmmanuel Vadot    items:
412846c905SEmmanuel Vadot      - const: core
422846c905SEmmanuel Vadot      - const: clkin
432846c905SEmmanuel Vadot
442846c905SEmmanuel Vadot  "#address-cells":
452846c905SEmmanuel Vadot    const: 1
462846c905SEmmanuel Vadot
472846c905SEmmanuel Vadot  "#size-cells":
482846c905SEmmanuel Vadot    const: 0
492846c905SEmmanuel Vadot
502846c905SEmmanuel VadotpatternProperties:
512846c905SEmmanuel Vadot  "slot@[0-2]$":
522846c905SEmmanuel Vadot    $ref: mmc-slot.yaml#
532846c905SEmmanuel Vadot    description:
542846c905SEmmanuel Vadot      A node for each slot provided by the MMC controller
552846c905SEmmanuel Vadot
562846c905SEmmanuel Vadot    properties:
572846c905SEmmanuel Vadot      reg:
582846c905SEmmanuel Vadot        enum: [0, 1, 2]
592846c905SEmmanuel Vadot
602846c905SEmmanuel Vadot      bus-width:
612846c905SEmmanuel Vadot        enum: [1, 4]
622846c905SEmmanuel Vadot
63*8ccc0d23SEmmanuel Vadot    required:
64*8ccc0d23SEmmanuel Vadot      - compatible
65*8ccc0d23SEmmanuel Vadot
662846c905SEmmanuel Vadot    unevaluatedProperties: false
672846c905SEmmanuel Vadot
682846c905SEmmanuel Vadotrequired:
692846c905SEmmanuel Vadot  - compatible
702846c905SEmmanuel Vadot  - reg
712846c905SEmmanuel Vadot  - interrupts
722846c905SEmmanuel Vadot  - clocks
732846c905SEmmanuel Vadot  - clock-names
742846c905SEmmanuel Vadot  - "#address-cells"
752846c905SEmmanuel Vadot  - "#size-cells"
762846c905SEmmanuel Vadot
772846c905SEmmanuel VadotadditionalProperties: false
782846c905SEmmanuel Vadot
792846c905SEmmanuel Vadotexamples:
802846c905SEmmanuel Vadot  - |
812846c905SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
822846c905SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
832846c905SEmmanuel Vadot    mmc@c1108c20 {
842846c905SEmmanuel Vadot        compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
852846c905SEmmanuel Vadot        reg = <0xc1108c20 0x20>;
862846c905SEmmanuel Vadot        interrupts = <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>;
872846c905SEmmanuel Vadot        clocks = <&clk_core>, <&clk_in>;
882846c905SEmmanuel Vadot        clock-names = "core", "clkin";
892846c905SEmmanuel Vadot        #address-cells = <1>;
902846c905SEmmanuel Vadot        #size-cells = <0>;
912846c905SEmmanuel Vadot
922846c905SEmmanuel Vadot        slot@1 {
932846c905SEmmanuel Vadot            compatible = "mmc-slot";
942846c905SEmmanuel Vadot            reg = <1>;
952846c905SEmmanuel Vadot            bus-width = <4>;
962846c905SEmmanuel Vadot        };
972846c905SEmmanuel Vadot    };
98