Lines Matching +full:int +full:- +full:clock +full:- +full:stable +full:- +full:broken
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
36 /* Controller doesn't honor resets unless we touch the clock register */
48 /* Controller needs to be reset after each request to stay stable */
50 /* Controller has an off-by-one issue with timeout value */
52 /* Controller has broken read timings */
56 /* Data timeout is invalid, should use SD clock */
62 /* Hardware shifts the 136-bit response, don't do it in software. */
64 /* Wait to see reset bit asserted before waiting for de-asserted */
68 /* Alternate clock source is required when supplying a 400 KHz clock. */
72 /* All controller slots are non-removable. */
74 /* Issue custom Intel controller reset sequence after power-up. */
76 /* Data timeout is invalid, use 1 MHz clock instead. */
84 /* Controller support for UHS DDR50 mode is broken. */
86 /* Controller support for eMMC HS200 mode is broken. */
90 /* Controller support for SDHCI_CTRL2_PRESET_VALUE is broken. */
92 /* Controller does not support or the support for ACMD12 is broken. */
96 /* SDMA boundary in SDHCI_BLOCK_SIZE broken - use front-end supplied value. */
271 #define SDHCI_CTRL2_MMC_HS400 0x0005 /* non-standard */
311 #define SDHCI_CAN_MMC_HS400 0x80000000 /* non-standard */
366 int timeout; /* Transfer timeout */
380 struct callout retune_callout; /* Re-tuning mode 1 callout */
388 uint32_t retune_ticks; /* Re-tuning callout ticks [hz] */
390 uint32_t clock; /* Current clock freq. */ member
393 uint8_t retune_count; /* Controller re-tuning count [s] */
394 uint8_t retune_mode; /* Controller re-tuning mode */
398 uint8_t retune_req; /* Re-tuning request status */
399 #define SDHCI_RETUNE_REQ_NEEDED 0x01 /* Re-tuning w/o circuit reset needed */
400 #define SDHCI_RETUNE_REQ_RESET 0x02 /* Re-tuning w/ circuit reset needed */
421 int sdhci_generic_read_ivar(device_t bus, device_t child, int which,
423 int sdhci_generic_write_ivar(device_t bus, device_t child, int which,
425 int sdhci_init_slot(device_t dev, struct sdhci_slot *slot, int num);
427 /* performs generic clean-up for platform transfers */
429 int sdhci_cleanup_slot(struct sdhci_slot *slot);
430 int sdhci_generic_suspend(struct sdhci_slot *slot);
431 int sdhci_generic_resume(struct sdhci_slot *slot);
433 int sdhci_generic_update_ios(device_t brdev, device_t reqdev);
434 int sdhci_generic_tune(device_t brdev, device_t reqdev, bool hs400);
435 int sdhci_generic_switch_vccq(device_t brdev, device_t reqdev);
436 int sdhci_generic_retune(device_t brdev, device_t reqdev, bool reset);
437 int sdhci_generic_request(device_t brdev, device_t reqdev,
439 int sdhci_generic_get_ro(device_t brdev, device_t reqdev);
440 int sdhci_generic_acquire_host(device_t brdev, device_t reqdev);
441 int sdhci_generic_release_host(device_t brdev, device_t reqdev);