~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt (Architecture sparc) and /Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt (Architecture i386)


  1 * TI Highspeed MMC host controller for OMAP an      1 * TI Highspeed MMC host controller for OMAP and 66AK2G family.
  2                                                     2 
  3 The Highspeed MMC Host Controller on TI OMAP a      3 The Highspeed MMC Host Controller on TI OMAP and 66AK2G family
  4 provides an interface for MMC, SD, and SDIO ty      4 provides an interface for MMC, SD, and SDIO types of memory cards.
  5                                                     5 
  6 This file documents differences between the co      6 This file documents differences between the core properties described
  7 by mmc.txt and the properties used by the omap      7 by mmc.txt and the properties used by the omap_hsmmc driver.
  8                                                     8 
  9 Required properties:                                9 Required properties:
 10 --------------------                               10 --------------------
 11 - compatible:                                      11 - compatible:
 12  Should be "ti,omap2-hsmmc", for OMAP2 control     12  Should be "ti,omap2-hsmmc", for OMAP2 controllers
 13  Should be "ti,omap3-hsmmc", for OMAP3 control     13  Should be "ti,omap3-hsmmc", for OMAP3 controllers
 14  Should be "ti,omap3-pre-es3-hsmmc" for OMAP3      14  Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
 15  Should be "ti,omap4-hsmmc", for OMAP4 control     15  Should be "ti,omap4-hsmmc", for OMAP4 controllers
 16  Should be "ti,am33xx-hsmmc", for AM335x contr     16  Should be "ti,am33xx-hsmmc", for AM335x controllers
 17  Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" fo     17  Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers.
 18                                                    18 
 19 SoC specific required properties:                  19 SoC specific required properties:
 20 ---------------------------------                  20 ---------------------------------
 21 The following are mandatory properties for OMA     21 The following are mandatory properties for OMAPs, AM33xx and AM43xx SoCs only:
 22 - ti,hwmods: Must be "mmc<n>", n is controller     22 - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1.
 23                                                    23 
 24 The following are mandatory properties for 66A     24 The following are mandatory properties for 66AK2G SoCs only:
 25 - power-domains:Should contain a phandle to a      25 - power-domains:Should contain a phandle to a PM domain provider node
 26                 and an args specifier containi     26                 and an args specifier containing the MMC device id
 27                 value. This property is as per     27                 value. This property is as per the binding,
 28                 Documentation/devicetree/bindi     28                 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
 29 - clocks:       Must contain an entry for each     29 - clocks:       Must contain an entry for each entry in clock-names. Should
 30                 be defined as per the he appro     30                 be defined as per the he appropriate clock bindings consumer
 31                 usage in Documentation/devicet     31                 usage in Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
 32 - clock-names:  Shall be "fck" for the functio     32 - clock-names:  Shall be "fck" for the functional clock,
 33                 and "mmchsdb_fck" for the debo     33                 and "mmchsdb_fck" for the debounce clock.
 34                                                    34 
 35                                                    35 
 36 Optional properties:                               36 Optional properties:
 37 --------------------                               37 --------------------
 38 - ti,dual-volt:         boolean, supports dual     38 - ti,dual-volt:         boolean, supports dual voltage cards
 39 - <supply-name>-supply: phandle to the regulat     39 - <supply-name>-supply: phandle to the regulator device tree node
 40                           "supply-name" exampl     40                           "supply-name" examples are "vmmc",
 41                           "vmmc_aux"(deprecate     41                           "vmmc_aux"(deprecated)/"vqmmc" etc
 42 - ti,non-removable:     non-removable slot (li     42 - ti,non-removable:     non-removable slot (like eMMC)
 43 - ti,needs-special-reset:       Requires a spe     43 - ti,needs-special-reset:       Requires a special softreset sequence
 44 - ti,needs-special-hs-handling: HSMMC IP needs     44 - ti,needs-special-hs-handling: HSMMC IP needs special setting
 45                                   for handling     45                                   for handling High Speed
 46 - dmas:                 List of DMA specifiers     46 - dmas:                 List of DMA specifiers with the controller specific
 47                         format as described in     47                         format as described in the generic DMA client
 48                         binding. A tx and rx s     48                         binding. A tx and rx specifier is required.
 49 - dma-names:            List of DMA request na     49 - dma-names:            List of DMA request names. These strings correspond
 50                         1:1 with the DMA speci     50                         1:1 with the DMA specifiers listed in dmas.
 51                         The string naming is t     51                         The string naming is to be "rx" and "tx" for
 52                         RX and TX DMA requests     52                         RX and TX DMA requests, respectively.
 53                                                    53 
 54 Examples:                                          54 Examples:
 55                                                    55 
 56 [hwmod populated DMA resources]                    56 [hwmod populated DMA resources]
 57                                                    57 
 58         mmc1: mmc@4809c000 {                       58         mmc1: mmc@4809c000 {
 59                 compatible = "ti,omap4-hsmmc";     59                 compatible = "ti,omap4-hsmmc";
 60                 reg = <0x4809c000 0x400>;          60                 reg = <0x4809c000 0x400>;
 61                 ti,hwmods = "mmc1";                61                 ti,hwmods = "mmc1";
 62                 ti,dual-volt;                      62                 ti,dual-volt;
 63                 bus-width = <4>;                   63                 bus-width = <4>;
 64                 vmmc-supply = <&vmmc>; /* phan     64                 vmmc-supply = <&vmmc>; /* phandle to regulator node */
 65                 ti,non-removable;                  65                 ti,non-removable;
 66         };                                         66         };
 67                                                    67 
 68 [generic DMA request binding]                      68 [generic DMA request binding]
 69                                                    69 
 70         mmc1: mmc@4809c000 {                       70         mmc1: mmc@4809c000 {
 71                 compatible = "ti,omap4-hsmmc";     71                 compatible = "ti,omap4-hsmmc";
 72                 reg = <0x4809c000 0x400>;          72                 reg = <0x4809c000 0x400>;
 73                 ti,hwmods = "mmc1";                73                 ti,hwmods = "mmc1";
 74                 ti,dual-volt;                      74                 ti,dual-volt;
 75                 bus-width = <4>;                   75                 bus-width = <4>;
 76                 vmmc-supply = <&vmmc>; /* phan     76                 vmmc-supply = <&vmmc>; /* phandle to regulator node */
 77                 ti,non-removable;                  77                 ti,non-removable;
 78                 dmas = <&edma 24                   78                 dmas = <&edma 24
 79                         &edma 25>;                 79                         &edma 25>;
 80                 dma-names = "tx", "rx";            80                 dma-names = "tx", "rx";
 81         };                                         81         };
 82                                                    82 
 83 [workaround for missing swakeup on am33xx]         83 [workaround for missing swakeup on am33xx]
 84                                                    84 
 85 This SOC is missing the swakeup line, it will      85 This SOC is missing the swakeup line, it will not detect SDIO irq
 86 while in suspend.                                  86 while in suspend.
 87                                                    87 
 88                              ------                88                              ------
 89                              | PRCM |              89                              | PRCM |
 90                               ------               90                               ------
 91                                ^ |                 91                                ^ |
 92                        swakeup | | fclk            92                        swakeup | | fclk
 93                                | v                 93                                | v
 94        ------                -------               94        ------                -------               -----
 95       | card | -- CIRQ -->  | hsmmc | -- IRQ -     95       | card | -- CIRQ -->  | hsmmc | -- IRQ -->  | CPU |
 96        ------                -------               96        ------                -------               -----
 97                                                    97 
 98 In suspend the fclk is off and the module is d     98 In suspend the fclk is off and the module is dysfunctional. Even register reads
 99 will fail. A small logic in the host will requ     99 will fail. A small logic in the host will request fclk restore, when an
100 external event is detected. Once the clock is     100 external event is detected. Once the clock is restored, the host detects the
101 event normally. Since am33xx doesn't have this    101 event normally. Since am33xx doesn't have this line it never wakes from
102 suspend.                                          102 suspend.
103                                                   103 
104 The workaround is to reconfigure the dat1 line    104 The workaround is to reconfigure the dat1 line as a GPIO upon suspend. To make
105 this work, we need to set the named pinctrl st    105 this work, we need to set the named pinctrl states "default" and "idle".
106 Prepare idle to remux dat1 as a gpio, and defa    106 Prepare idle to remux dat1 as a gpio, and default to remux it back as sdio
107 dat1. The MMC driver will then toggle between     107 dat1. The MMC driver will then toggle between idle and default state during
108 runtime.                                          108 runtime.
109                                                   109 
110 In summary:                                       110 In summary:
111 1. select matching 'compatible' section, see e    111 1. select matching 'compatible' section, see example below.
112 2. specify pinctrl states "default" and "idle"    112 2. specify pinctrl states "default" and "idle", "sleep" is optional.
113 3. specify the gpio irq used for detecting sdi    113 3. specify the gpio irq used for detecting sdio irq in suspend
114                                                   114 
115 If configuration is incomplete, a warning mess    115 If configuration is incomplete, a warning message is emitted "falling back to
116 polling". Also check the "sdio irq mode" in /s    116 polling". Also check the "sdio irq mode" in /sys/kernel/debug/mmc0/regs. Mind
117 not every application needs SDIO irq, e.g. MMC    117 not every application needs SDIO irq, e.g. MMC cards.
118                                                   118 
119         mmc1: mmc@48060100 {                      119         mmc1: mmc@48060100 {
120                 compatible = "ti,am33xx-hsmmc"    120                 compatible = "ti,am33xx-hsmmc";
121                 ...                               121                 ...
122                 pinctrl-names = "default", "id    122                 pinctrl-names = "default", "idle", "sleep"
123                 pinctrl-0 = <&mmc1_pins>;         123                 pinctrl-0 = <&mmc1_pins>;
124                 pinctrl-1 = <&mmc1_idle>;         124                 pinctrl-1 = <&mmc1_idle>;
125                 pinctrl-2 = <&mmc1_sleep>;        125                 pinctrl-2 = <&mmc1_sleep>;
126                 ...                               126                 ...
127                 interrupts-extended = <&intc 6    127                 interrupts-extended = <&intc 64 &gpio2 28 IRQ_TYPE_LEVEL_LOW>;
128         };                                        128         };
129                                                   129 
130         mmc1_idle : pinmux_cirq_pin {             130         mmc1_idle : pinmux_cirq_pin {
131                 pinctrl-single,pins = <           131                 pinctrl-single,pins = <
132                         0x0f8 0x3f      /* GPI    132                         0x0f8 0x3f      /* GPIO2_28 */
133                 >;                                133                 >;
134         };                                        134         };
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php