Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【FAQ】全志R系列Tina-Linux4.9部分平台唤醒源配置

    其它全志芯片讨论区
    r329 r328 r818 faq 技术支持
    1
    1
    1552
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 9 last edited by q1215200171

      【背景】

      Tina 休眠唤醒框架一直处于不断迭代,向内核标准配置过渡的过程,因此唤醒源配置也从自己实现的接口向内核配置接口过度,因此本文简要说明,Linux4.9部分平台MR813,R818,R329,R311,MR133,R328平台唤醒源配置说明。

      【简介】

      在Linux-4.9中, 存在两种配置配置唤醒源

      • 策略1:向内核声明wakeup-source,由内核保证唤醒中断使能。

      • 策略2:本质上是设置一个全局标志位,然后通过参数传递给底层休眠接口,并在休眠流程末,由平台注册的休眠函数重新使能标记中断。

      其中,策略1 为Linux内核提供的配置方式,也是Tina日后主流推广使用的方式, 策略2是由于过度阶段,部分GPIO唤醒源未能兼容Linux配置,所做的兼容配置

      【分析】

      • 策略1: 向内核声明wakeup-source,由内核保证唤醒中断使能
        常用平台有: MR813,R818,R329等

      • 方法1: 通过device_init_wakeup申请wakup_source,然后通过dev_pm_set_wake_irq注册中断号即可
        参考: linux-4.9/drivers/rtc/rtc-sunxi.c
        方法2: 通过device_init_wakeup申请wakup_source,然后在suspend/resume函数中,调用enable/disable_irq_wake即可
        参考: linux-4.9/drivers/input/keyboard/gpio_keys.c

      • 策略2: 设置一个标志位,在休眠后期,由平台注册的休眠函数重新使能中断
        常用平台有: R311,MR133,R328等

      • 方法1: 通过调用 int enable_gpio_wakeup_src(int para) 函数接口配置。(para 为KERNEL对GPIO解析得到的标号)

      • 参考: linux-4.9/drivers/bluetooth/rtl_btlpm.c
        上述方法1只能支持使用GPIO中断的外部唤醒源的配置,内部唤醒源配置一般也采用策略1中的两种方法。
        参考: linux-4.9/drivers/rtc/rtc-sunxi.c
        参考: linux-4.9/drivers/input/keyboard/sunxi-keyboard.c

      【其他】

      • 需要注意的是,本文所指的唤醒源配置仅是指 使能中断。
        例如,配置一个GPIO唤醒源,除了使能中断(配置唤醒源)外,还需驱动自己保证该IO的复用功能,上下拉状态配置正确。

      • 内部唤醒源和外部唤醒源
        内部唤醒源是指: 具有独立中断号的核内外设配置的唤醒源,如 lradc按键,RTC闹钟等
        外部唤醒源是指: 需要借助GPIO中断实现唤醒的外部设备,如WIFI唤醒,TP唤醒等

      附件:FlameGraph.tar.xz

      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策