我是靠谱客的博主 自信柚子,最近开发中收集的这篇文章主要介绍Linux内核4.14版本——mmc core(5)——mmc core主模块(1)简介1. 简介2. API总览3. 参考文章,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1. 简介

1.1 mmc core概述

1.2 操作集说明

2. API总览

2.1 mmc core初始化相关

2.2 mmc host的管理和维护相关

2.3 mmc card的操作相关(包括card状态的获取)

2.4 总线io setting相关

2.5 host的mmc总线相关

2.6 mmc请求相关

2.7 card检测相关

2.8 bkops操作相关

2.9 regulator操作相关

2.10 card擦除操作相关

2.11 clock操作接口

2.12 mmc core电源管理操作

3. 参考文章

1. 简介

1.1 mmc core概述

      mmc core主模块是mmc core的实现核心。也是本章的重点内容。
      对应代码位置drivers/mmc/core/core.c。

其主要负责如下功能:

(1)mmc core初始化,包括注册mmc bus、mmc host class等等
(2)mmc host的管理和维护,包括为其他模块提供mmc_host的操作接口,如下
            host的启动和停止
            host的占用和释放
            host电源状态的保存和恢复
            host总线操作集的绑定和解绑
            host上卡状态检测
(3)为其他模块提供mmc_card的操作接口,如下
            card的唤醒和休眠
            card擦除
            card属性的获取
(4)为其他模块提供总线io setting的接口
(5)为其他模块提供mmc请求接口
(6)card检测接口
(7)bkops操作接口
(8)regulator操作接口
(9)clock操作接口
(10)mmc core电源管理操作接口

1.2 操作集说明

      在mmc_host中有两个操作集成员,需要理解一下,以免在代码中产生误会:

      mmc_host->struct mmc_host_ops *ops,这个是host的操作集,由host controller驱动决定。对于sdhci类host来说,就是sdhci_ops(sdhci.c中设置)。
      mmc_host->struct mmc_bus_ops *bus_ops,这个是mmc总线的操作集(也可以理解为host的mmc bus handler,host的总线处理方法),由总线上的card type决定。对于mmc card type来说,就是mmc_ops_unsafe或者mmc_ops(mmc_attach_bus_ops中设置)。

2. API总览

2.1 mmc core初始化相关

      mmc_init & mmc_exit (模块内使用)

2.2 mmc host的管理和维护相关

     mmc_claim_host & mmc_try_claim_host & mmc_release_host (模块内使用)
     mmc_power_up & mmc_power_off
     mmc_start_host & mmc_stop_host
     mmc_power_save_host & mmc_power_restore_host
     mmc_resume_host & mmc_suspend_host
     mmc_pm_notify

2.3 mmc card的操作相关(包括card状态的获取)

      mmc_hw_reset & mmc_hw_reset_check &
      mmc_card_awake & mmc_card_sleep
      mmc_card_is_prog_state
      mmc_can_erase
      mmc_can_trim
      mmc_can_discard
      mmc_can_sanitize
      mmc_can_secure_erase_trim
      mmc_erase_group_aligned

2.4 总线io setting相关

      mmc_set_ios
      mmc_set_chip_select
      mmc_set_clock
      mmc_set_bus_mode
      mmc_set_bus_width
      mmc_select_voltage
      mmc_set_signal_voltage(特殊)
      mmc_set_timing
      mmc_set_driver_type

      mmc_get_max_frequency & mmc_get_min_frequency

2.5 host的mmc总线相关

       mmc_resume_bus

       mmc_attach_bus & mmc_detach_bus

2.6 mmc请求相关

  • mmc_request_done
  • mmc_wait_for_req
  • mmc_wait_for_cmd
  • mmc_set_data_timeout
  • mmc_align_data_size

2.7 card检测相关

  • mmc_detect_change
  • mmc_rescan
  • mmc_detect_card_removed

2.8 bkops操作相关

  • mmc_blk_init_bkops_statistics
  • mmc_start_delayed_bkops
  • mmc_start_bkops & mmc_stop_bkops
  • mmc_start_idle_time_bkops
  • mmc_read_bkops_status

2.9 regulator操作相关

  • mmc_regulator_get_ocrmask
  • mmc_regulator_set_ocr
  • mmc_regulator_get_supply

2.10 card擦除操作相关

  • mmc_init_erase
  • mmc_erase

2.11 clock操作接口

  • mmc_init_clk_scaling & mmc_exit_clk_scaling
  • mmc_can_scale_clk
  • mmc_disable_clk_scaling

2.12 mmc core电源管理操作

  • mmc_rpm_hold & mmc_rpm_release

3. 参考文章

[mmc subsystem] mmc core(第六章)——mmc core主模块_ooonebook的博客-CSDN博客

最后

以上就是自信柚子为你收集整理的Linux内核4.14版本——mmc core(5)——mmc core主模块(1)简介1. 简介2. API总览3. 参考文章的全部内容,希望文章能够帮你解决Linux内核4.14版本——mmc core(5)——mmc core主模块(1)简介1. 简介2. API总览3. 参考文章所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部