1 .. SPDX-License-Identifier: GPL-2.0-only 2 .. Copyright 2024 Linaro Ltd. 3 4 ==================== 5 Power Sequencing API 6 ==================== 7 8 :Author: Bartosz Golaszewski 9 10 Introduction 11 ============ 12 13 This framework is designed to abstract complex 14 shared between multiple logical devices in the 15 16 The intention is to allow consumers to obtain 17 exposed by the power sequence provider and del 18 control of the underlying resources as well as 19 mitigate any potential conflicts between multi 20 21 Glossary 22 -------- 23 24 The power sequencing API uses a number of term 25 26 Unit 27 28 A unit is a discreet chunk of a power sequ 29 enable a set of regulators, another may en 30 define dependencies in the form of other u 31 it itself can be. 32 33 Target 34 35 A target is a set of units (composed of th 36 dependencies) that a consumer selects by i 37 to the power sequencer. Via the dependency 38 share the same parts of a power sequence b 39 irrelevant. 40 41 Descriptor 42 43 A handle passed by the pwrseq core to ever 44 entry point to the provider layer. It ensu 45 users and keeps reference counting consist 46 47 Consumer interface 48 ================== 49 50 The consumer API is aimed to be as simple as p 51 getting a descriptor from the power sequencer 52 specify the name of the target it wants to rea 53 pwrseq_power_up(). The descriptor can be relea 54 the consumer can request the powering down of 55 pwrseq_power_off(). Note that there is no guar 56 will have any effect as there may be multiple 57 who may keep them active. 58 59 Provider interface 60 ================== 61 62 The provider API is admittedly not nearly as s 63 consumers but it makes up for it in flexibilit 64 65 Each provider can logically split the power-up 66 (units) and define their dependencies. They ca 67 consumers may use as the final point in the se 68 69 To that end the providers fill out a set of co 70 register with the pwrseq subsystem by calling 71 72 Dynamic consumer matching 73 ------------------------- 74 75 The main difference between pwrseq and other l 76 mechanism for dynamic matching of consumers an 77 provider driver must implement the `match()` c 78 core when registering with the subsystems. 79 80 When a client requests a sequencer handle, the 81 every registered provider and let it flexibly 82 client device is indeed its consumer. For exam 83 device-tree node representing a power manageme 84 consumer driver controls one of its modules, t 85 relevant regulator supply properties in device 86 the PMU to the consumer. 87 88 API reference 89 ============= 90 91 .. kernel-doc:: include/linux/pwrseq/provider. 92 :internal: 93 94 .. kernel-doc:: drivers/power/sequencing/core. 95 :export:
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.