123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- Qualcomm Secure Digital Card Controller (SDCC)
- Secure Digital Card Controller provides host interface to
- SD/MMC/SDIO cards.
- Required properties:
- - compatible: should be "qcom,msm-sdcc"
- - reg: should contain SDCC (mandatory), SDCC-DML (optional) and BAM
- (optional) register maps.
- - reg-names: indicates various resources passed to driver (via reg
- property) by name. "reg-names" examples are "core_mem", "dml_mem"
- and "bam_mem". "dml_mem" and "bam_mem" are optional, and the SDCC
- driver will default to PIO mode when neither are present.
- - interrupts: should contain SDCC core interrupt.
- - interrupt-names: indicates interrupts passed to driver (via interrupts
- property) by name. "core_irq" is mandatory, "bam_irq" is mandatory only
- when BAM DMA engine is used. "status_irq" and "sdiowakeup_irq" are
- optional.
- - qcom,clk-rates: specifies supported SDCC clock frequencies, Units - Hz.
- - qcom,sup-voltages: specifies supported voltage ranges for card. Should
- always be specified in pairs (min, max), Units - mV.
- - <supply-name>-supply: phandle to the regulator device tree node.
- "supply-name" examples are "vdd", "vdd-io".
- Optional Properties:
- - cell-index: defines slot ID.
- - qcom,bus-width: defines the bus I/O width that controller supports.
- - wp-gpios: specify GPIO for write protect switch detection.
- - cd-gpios: specify GPIO for card detection.
- - qcom,nonremovable: specifies whether the card in slot is hot pluggable
- or hard wired.
- - qcom,disable-cmd23: disable sending CMD23 to card when controller
- can't support it.
- - qcom,bus-speed-mode: specifies supported bus speed modes by host.
- - qcom,current-limit: specifies max. current the host can drive.
- - qcom,xpc: specifies if the host can supply more than 150mA for SDXC
- cards.
- - qcom,dat1-mpm-int: specifies MPM interrupt number corresponding to
- DAT1 line of SDCC (used only if slot has dedicated DAT1 MSM pin
- (not GPIO))
- In the following, <supply> can be vdd (flash core voltage) or vdd-io
- (I/O voltage).
- - qcom,<supply>-always-on: specifies whether supply should be kept "on"
- always.
- - qcom,<supply>-lpm-sup: specifies whether supply can be kept in low
- power mode (lpm).
- - qcom,<supply>-voltage-level: specifies voltage levels for supply.
- Should be specified in pairs (min, max), units uV.
- - qcom,<supply>-current-level: specifies load levels for supply in
- lpm or high power mode (hpm). Should be specified in pairs (lpm, hpm),
- units uA.
- - gpios: specifies gpios assigned for sdcc slot.
- - qcom,gpio-names: a list of strings that map in order to the list
- of gpios. A slot has either gpios or dedicated tlmm pins as represented
- below.
- - qcom,pad-pull-on: Active pull configuration for sdc tlmm pins
- - qcom,pad-pull-off: Suspend pull configuration for sdc tlmm pins.
- - qcom,pad-drv-on: Active drive strength configuration for sdc tlmm pins.
- - qcom,pad-drv-off: Suspend drive strength configuration for sdc tlmm pins.
- Tlmm pins are specified as <clk cmd data>
- - qcom,bus-bw-vectors-bps: specifies array of throughput values in
- Bytes/sec. The values in the array are determined according to
- supported bus speed modes. For example, if host supports SDR12 mode,
- value is 13631488 Bytes/sec.
- - Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
- below optional properties:
- - qcom,msm-bus,name
- - qcom,msm-bus,num-cases
- - qcom,msm-bus,active-only
- - qcom,msm-bus,num-paths
- - qcom,msm-bus,vectors-KBps
- Example:
- qcom,sdcc@f9600000 {
- /* SDC1 used as eMMC slot */
- cell-index = <1>;
- compatible = "qcom,msm-sdcc";
- reg = <0xf9600000 0x800 // SDCC register interface
- /* To use PIO instead of BAM, skip DML and BAM regs */
- 0xf9600800 0x1800 // DML register interface
- 0xf9602000 0x2000> // BAM register interface
- interrupts = <123>;
- qcom,clk-rates = <400000 24000000 48000000>;
- qcom,sup-voltages = <2700 3300>;
- qcom,bus-width = <8>; //8-bit wide
- qcom,nonremovable;
- qcom,msm-bus,name = "sdcc2";
- qcom,msm-bus,num-cases = <7>;
- qcom,msm-bus,num-paths = <1>;
- qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */
- <81 512 6656 13312>, /* 13 MB/s*/
- <81 512 13312 26624>, /* 26 MB/s */
- <81 512 26624 53248>, /* 52 MB/s */
- <81 512 53248 106496>, /* 104 MB/s */
- <81 512 106496 212992>, /* 208 MB/s */
- <81 512 2147483647 4294967295>; /* Max. bandwidth */
- qcom,bus-bw-vectors-bps = <0 13631488 27262976 54525952 109051904 218103808 4294967295>;
- };
|