Fork me on GitHub
侧边栏

随笔分类 -  PMIC

摘要:概要 高通充电平台不论是线性充电还是开关充电,充电类型识别均是基于《Battery Charging Specification Revisions 1.2》(俗称BC1.2)规范基础上进行设计。下面主要介绍在开发过程中几种基础的充电类型。 充电类型 标准下行接口(SDP : Standard Do 阅读全文
posted @ 2025-09-12 21:05 yooooooo 阅读(46) 评论(0) 推荐(0)
摘要:1. Linux pm qos PM QOS表示linux 的电源管理服务质量 linux使用 suspned/resume 机制在系统不使用的时候, 整体进入休眠状态,以节省电源,后面又引入更细粒度的runtime PM, 在设备不使用时, 单独suspend一个设备 不管是generic PM还 阅读全文
posted @ 2025-04-30 10:38 yooooooo 阅读(164) 评论(0) 推荐(0)
摘要:近来集中遇到不少user抱怨手机卡顿的case,能引起系统卡顿的原因可以成千上万,但最核心的起因通常避不开CPU被限制频率或多核CPU部分cpu被关核了。 本文将从几个工作中遇到的实际案例出发(只分析与CPU调控有关的案例),先尽可能地还原出完整的案发现场,再分析具体情况下CPU频率和核心的变化情况 阅读全文
posted @ 2025-01-03 10:38 yooooooo 阅读(602) 评论(0) 推荐(0)
摘要:1. 前言 在当前移动处理芯片性能过剩的时代,用户对手机的温度要求越来越高,更加苛刻的标准,最好永不发热。在这种背景下,温控领域的工作变得日益重要,众多大厂都在不断魔改和优化他们的温控技术。今天我们也带大家看看温控技术的其中一部分:Thermal Engine。下面,我们将基于 GitHub 上的源 阅读全文
posted @ 2025-01-03 10:33 yooooooo 阅读(1217) 评论(0) 推荐(0)
摘要:一、简介 当今的复杂SoC由多个子模块协同工作组成。在执行各种用例的操作系统中,并非SoC中的所有模块都需要始终保持最高性能。为方便起见,将SoC中的子模块分组为域,从而允许某些域以较低的电压和频率运行,而其他域以较高的电压/频率对运行。 对于这些设备支持的频率和电压对,我们称之为OPP(Opera 阅读全文
posted @ 2024-12-01 20:54 yooooooo 阅读(107) 评论(0) 推荐(0)
摘要:前不久在高通 SDM450 平台接触了 voter 机制(投票机制)。最近终于得空,结合一个问题简单研究了一下。现将研究流程简单记录一下,由于时间有限,所以是实用为目的,没有做详细的分析,不过结合着这篇分析和源码一起参考,应该能快速地应用 voter 做一些事情。voter 第一步是找到 voter 阅读全文
posted @ 2024-08-21 11:15 yooooooo 阅读(489) 评论(0) 推荐(0)
摘要:1. 前言 在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指、译码、执行。那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊。确实,是要停掉,但何时停、怎么停,却要仔细斟酌,因为实际的软硬件环境是非常复杂的。 我们回到Linux kernel上, 阅读全文
posted @ 2023-05-11 20:41 yooooooo 阅读(136) 评论(0) 推荐(0)
摘要:1. 前言 也许大家会觉得奇怪:为什么Linux kernel把对ARM big·Lttile的支持放到了cpufreq的框架中? 众所周知,ARM的big·Little架构,也称作HMP(具体可参考“Linux CPU core的电源管理(2)_cpu topology”中相关的介绍),通过在一个 阅读全文
posted @ 2023-05-01 15:03 yooooooo 阅读(125) 评论(0) 推荐(0)
摘要:1. 前言 前面两篇clock framework的分析文章,分别从clock consumer和clock provider的角度,介绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock framework的内部,分 阅读全文
posted @ 2023-04-28 11:23 yooooooo 阅读(93) 评论(0) 推荐(0)
摘要:1. 前言 本文接上篇文章,从clock driver的角度,分析怎么借助common clock framework管理系统的时钟资源。换句话说,就是怎么编写一个clock driver。 由于kernel称clock driver为clock provider(相应的,clock的使用者为clo 阅读全文
posted @ 2023-04-27 10:22 yooooooo 阅读(190) 评论(0) 推荐(0)
摘要:1. 前言 common clock framework是用来管理系统clock资源的子系统,根据职能,可分为三个部分: 1)向其它driver提供操作clocks的通用API。 2)实现clock控制的通用逻辑,这部分和硬件无关。 3)将和硬件相关的clock控制逻辑封装成操作函数集,交由底层的p 阅读全文
posted @ 2023-04-25 17:59 yooooooo 阅读(169) 评论(0) 推荐(0)
摘要:1. 前言 本文是分析cpufreq framework之前的一篇前置文章,用于介绍Linux电源管理中的Operating Performance Point (OPP)接口。 OPP是一个单纯的软件library,用于归纳、管理各个硬件模块的、可工作的{频率}/ {电压}组合。它不涉及任何硬件, 阅读全文
posted @ 2023-04-25 00:05 yooooooo 阅读(145) 评论(0) 推荐(0)
摘要:/sys/class/regulator下有所有的regular,如 每个节点有如下的属性 cpu0-cpu 使用者名字 device max_microvolts 最大电压 microvolts min_microvolts 最小电压 name 电源名字 num_users 当前的使用者数量(us 阅读全文
posted @ 2023-03-10 10:24 yooooooo 阅读(378) 评论(0) 推荐(0)
摘要:1 什么是进程冻结 进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态。 2 为什么需要冻结技术 假设没有冻结技术,进程可以在任意可调度的点暂停,而且直到cpu_down才会暂停并迁移。这会给系统带来 阅读全文
posted @ 2023-03-06 10:56 yooooooo 阅读(225) 评论(0) 推荐(0)
摘要:1. 前言 per-device PM QoS是针对指定设备的QoS framework,背后的思考如下: 1)resume_latency 在Runtime PM的框架下,当device的引用计数减为0的时候,RPM会suspend该device。不过,device进入suspend状态以及从su 阅读全文
posted @ 2023-01-27 11:08 yooooooo 阅读(153) 评论(0) 推荐(0)
摘要:1. 前言 回顾上一篇文章(Linux PM QoS framework(1)_概述和软件架构),PM QoS framework抽象出4个系统级别的QoS constraint(统称为PM QoS class),分别是cpu&dma latency、network latency、network 阅读全文
posted @ 2023-01-27 10:55 yooooooo 阅读(266) 评论(0) 推荐(0)
摘要:1. 前言 QOS为Quality Of Service(服务质量)的简称,对PM QoS而言,表示Linux kernel电源管理相关的服务质量。那到底什么是服务质量呢? 我们知道,Linux PM的主要功能,是节省功耗,但同时,会付出一定的性能代价,例如延迟(latency)增加、吞吐量(thr 阅读全文
posted @ 2023-01-26 17:43 yooooooo 阅读(171) 评论(0) 推荐(0)
摘要:本章节分析governor之一的step_wise。 1、基本术语概念 在介绍之前,先介绍几个术语概念来帮助大家理解: 1.1 trip point 可以理解为一个阈值吧,每一个温度区间的阈值可以理解为一个trip point。 1.2 cooling state 可以认为是温控调节的下一目标的索引 阅读全文
posted @ 2023-01-24 17:39 yooooooo 阅读(556) 评论(0) 推荐(0)
摘要:IPA(Intelligent PowerAllocation)是由ARM开发的符合linux内核thermalframework的governor,代码中的名字为power_allocator,旨在满足温控效果的条件下最大化性能。 IPA背景 熟悉ARM终端芯片系统的开发人员,应该对EAS(Ene 阅读全文
posted @ 2022-12-28 11:50 yooooooo 阅读(1004) 评论(0) 推荐(0)
摘要:1. 前言 本文从regulator driver的角度,描述怎样基于regulator framework编写regulator驱动。同时,以此为契机,学习、理解regulator有关的物理特性,以便能够更好的使用它们。 2. regulator driver的实现步骤 2.1 确定系统中regu 阅读全文
posted @ 2022-12-11 17:44 yooooooo 阅读(253) 评论(0) 推荐(0)