^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * Atmel High Speed MultiMedia Card Interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) This controller on atmel products provides an interface for MMC, SD and SDIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) types of memory cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) This file documents differences between the core properties described
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) by mmc.txt and the properties used by the atmel-mci driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) 1) MCI node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - compatible: should be "atmel,hsmci"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - #address-cells: should be one. The cell is the slot id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) - #size-cells: should be zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - at least one slot node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - clock-names: tuple listing input clock names.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Required elements: "mci_clk"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - clocks: phandles to input clocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The node contains child nodes for each slot that the platform uses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Example MCI node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) mmc0: mmc@f0008000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) compatible = "atmel,hsmci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) reg = <0xf0008000 0x600>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) interrupts = <12 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) clock-names = "mci_clk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) clocks = <&mci0_clk>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) [ child node definitions...]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 2) slot nodes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - reg: should contain the slot id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - bus-width: number of data lines connected to the controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - cd-gpios: specify GPIOs for card detection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) - cd-inverted: invert the value of external card detect gpio line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) - wp-gpios: specify GPIOs for write protection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) Example slot node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) slot@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) reg = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) bus-width = <4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) cd-gpios = <&pioD 15 0>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) cd-inverted;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) Example full MCI node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) mmc0: mmc@f0008000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) compatible = "atmel,hsmci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) reg = <0xf0008000 0x600>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) interrupts = <12 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) slot@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) reg = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) bus-width = <4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) cd-gpios = <&pioD 15 0>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) cd-inverted;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) slot@1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) reg = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) bus-width = <4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) };