OpenBIC
OpenSource Bridge-IC
plat_pwm.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#define PWM_PORT0 0
18
19#define REDUNDANT_STEP1_RETRY \
20 2 /*Current interval in zone_table is 5s. DISABLE-> STEP1 spent 5*2 s*/
21#define REDUNDANT_STEP2_RETRY \
22 12 /*Current interval in zone_table is 5s. STEP1-> STEP2 spent 5*12 s*/
23
47};
48
54};
55
57 // group pwm dev
61 // single pwm dev
70};
71
76};
77
78void init_pwm_dev(void);
79int ast_pwm_set(int duty);
80uint8_t plat_pwm_ctrl(enum PWM_DEVICE_E dev, uint8_t duty);
82uint8_t ctl_pwm_pump(uint8_t pump1_duty, uint8_t pump2_duty, uint8_t pump3_duty);
84void set_redundant_transform_phase(uint8_t redundant_transform_phase);
85uint8_t ctl_all_pwm_dev(uint8_t duty);
86uint8_t set_pwm_group(uint8_t group, uint8_t duty);
87uint8_t get_pwm_group_cache(uint8_t group);
88uint8_t get_pwm_cache(uint8_t idx);
89uint8_t manual_pwm_idx_to_pwm_idx(uint8_t idx);
90uint8_t get_manual_pwm_flag(uint8_t idx);
91void set_manual_pwm_flag(uint8_t idx, uint8_t flag);
92uint8_t get_manual_pwm_cache(uint8_t idx);
93void set_manual_pwm_cache(uint8_t idx, uint8_t duty);
uint8_t idx
Definition: plat_util.c:42
const struct device * dev
Definition: hal_peci.c:28
uint8_t nct7363_wdt_all_disable()
Definition: plat_pwm.c:117
uint8_t plat_pwm_ctrl(enum PWM_DEVICE_E dev, uint8_t duty)
Definition: plat_pwm.c:189
void init_pwm_dev(void)
Definition: plat_pwm.c:506
void set_redundant_transform_phase(uint8_t redundant_transform_phase)
Definition: plat_pwm.c:394
uint8_t manual_pwm_idx_to_pwm_idx(uint8_t idx)
Definition: plat_pwm.c:450
uint8_t get_pwm_cache(uint8_t idx)
Definition: plat_pwm.c:442
uint8_t get_pwm_group_cache(uint8_t group)
Definition: plat_pwm.c:434
PWM_DEVICE_E
Definition: plat_pwm.h:24
@ PWM_DEVICE_E_FB_FAN_14
Definition: plat_pwm.h:38
@ PWM_DEVICE_E_FB_FAN_2
Definition: plat_pwm.h:26
@ PWM_DEVICE_E_PB_PUMB_FAN_1
Definition: plat_pwm.h:42
@ PWM_DEVICE_E_PB_PUMB_FAN_2
Definition: plat_pwm.h:43
@ PWM_DEVICE_E_FB_FAN_3
Definition: plat_pwm.h:27
@ PWM_DEVICE_E_FB_FAN_8
Definition: plat_pwm.h:32
@ PWM_DEVICE_E_PB_PUMB_FAN_3
Definition: plat_pwm.h:44
@ PWM_DEVICE_E_FB_FAN_4
Definition: plat_pwm.h:28
@ PWM_DEVICE_E_FB_FAN_5
Definition: plat_pwm.h:29
@ PWM_DEVICE_E_FB_FAN_7
Definition: plat_pwm.h:31
@ PWM_DEVICE_E_PB_PUMB_3
Definition: plat_pwm.h:41
@ PWM_DEVICE_E_PB_PUMB_2
Definition: plat_pwm.h:40
@ PWM_DEVICE_E_FB_FAN_12
Definition: plat_pwm.h:36
@ PWM_DEVICE_E_FB_FAN_9
Definition: plat_pwm.h:33
@ PWM_DEVICE_E_FB_FAN_1
Definition: plat_pwm.h:25
@ PWM_DEVICE_E_FB_FAN_10
Definition: plat_pwm.h:34
@ PWM_DEVICE_E_FB_FAN_6
Definition: plat_pwm.h:30
@ PWM_DEVICE_E_MAX
Definition: plat_pwm.h:46
@ PWM_DEVICE_E_FB_FAN_11
Definition: plat_pwm.h:35
@ PWM_DEVICE_E_PB_PUMB_1
Definition: plat_pwm.h:39
@ PWM_DEVICE_E_FB_FAN_13
Definition: plat_pwm.h:37
@ PWM_DEVICE_E_BB_FAN
Definition: plat_pwm.h:45
uint8_t ctl_pwm_pump(uint8_t pump1_duty, uint8_t pump2_duty, uint8_t pump3_duty)
Definition: plat_pwm.c:322
uint8_t get_redundant_transform_phase()
Definition: plat_pwm.c:389
void abnormal_pump_redundant_transform()
Definition: plat_pwm.c:282
PWM_GROUP_E
Definition: plat_pwm.h:49
@ PWM_GROUP_E_MAX
Definition: plat_pwm.h:53
@ PWM_GROUP_E_HEX_FAN
Definition: plat_pwm.h:50
@ PWM_GROUP_E_RPU_FAN
Definition: plat_pwm.h:52
@ PWM_GROUP_E_PUMP
Definition: plat_pwm.h:51
REDUNDANCY_TRANSFORM_E
Definition: plat_pwm.h:72
@ REDUNDANCY_TRANSFORM_DISABLE
Definition: plat_pwm.h:73
@ REDUNDANCY_TRANSFORM_STEP_2
Definition: plat_pwm.h:75
@ REDUNDANCY_TRANSFORM_STEP_1
Definition: plat_pwm.h:74
uint8_t set_pwm_group(uint8_t group, uint8_t duty)
Definition: plat_pwm.c:410
uint8_t get_manual_pwm_cache(uint8_t idx)
Definition: plat_pwm.c:478
uint8_t ctl_all_pwm_dev(uint8_t duty)
Definition: plat_pwm.c:401
int ast_pwm_set(int duty)
Definition: plat_pwm.c:169
uint8_t nct7363_wdt_all_enable()
Definition: plat_pwm.c:140
MANUAL_PWM_E
Definition: plat_pwm.h:56
@ MANUAL_PWM_E_MAX
Definition: plat_pwm.h:69
@ MANUAL_PWM_E_PUMP_3
Definition: plat_pwm.h:64
@ MANUAL_PWM_E_PUMP
Definition: plat_pwm.h:59
@ MANUAL_PWM_E_HEX_FAN
Definition: plat_pwm.h:58
@ MANUAL_PWM_E_RPU_FAN
Definition: plat_pwm.h:60
@ MANUAL_PWM_E_PUMP_FAN_1
Definition: plat_pwm.h:65
@ MANUAL_PWM_E_PUMP_2
Definition: plat_pwm.h:63
@ MANUAL_PWM_E_PUMP_FAN_2
Definition: plat_pwm.h:66
@ MANUAL_PWM_E_PUMP_FAN_3
Definition: plat_pwm.h:67
@ MANUAL_PWM_E_PUMP_1
Definition: plat_pwm.h:62
@ MANUAL_PWM_E_RPU_PCB_FAN
Definition: plat_pwm.h:68
void set_manual_pwm_cache_to_default(void)
Definition: plat_pwm.c:494
uint8_t get_manual_pwm_flag(uint8_t idx)
Definition: plat_pwm.c:462
void set_manual_pwm_cache_to_zero(void)
Definition: plat_pwm.c:500
void set_manual_pwm_cache(uint8_t idx, uint8_t duty)
Definition: plat_pwm.c:486
void set_manual_pwm_flag(uint8_t idx, uint8_t flag)
Definition: plat_pwm.c:470