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 6 /*Current interval in zone_table is 5s. STEP0-> STEP1 spent 5*6 s*/
20#define REDUNDANT_STEP2A_RETRY \
21 12 /*Current interval in zone_table is 5s. STEP1-> STEP2A spent 5*12 s*/
22#define REDUNDANT_STEP2B_RETRY \
23 12 /*Current interval in zone_table is 5s. STEP2A-> STEP2B spent 5*12 s*/
24
48};
49
55};
56
58 // group pwm dev
62 // single pwm dev
71};
72
78};
79
80void init_pwm_dev(void);
81int ast_pwm_set(int duty);
82uint8_t plat_pwm_ctrl(enum PWM_DEVICE_E dev, uint8_t duty);
84uint8_t ctl_pwm_pump(uint8_t pump1_duty, uint8_t pump2_duty, uint8_t pump3_duty);
86uint8_t ctl_all_pwm_dev(uint8_t duty);
87uint8_t set_pwm_group(uint8_t group, uint8_t duty);
88uint8_t get_pwm_group_cache(uint8_t group);
89void set_pwm_group_cache(uint8_t group, uint8_t duty);
90uint8_t get_pwm_cache(uint8_t idx);
91uint8_t manual_pwm_idx_to_pwm_idx(uint8_t idx);
92uint8_t get_manual_pwm_flag(uint8_t idx);
93void set_manual_pwm_flag(uint8_t idx, uint8_t flag);
94uint8_t get_manual_pwm_cache(uint8_t idx);
95void 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:120
uint8_t plat_pwm_ctrl(enum PWM_DEVICE_E dev, uint8_t duty)
Definition: plat_pwm.c:192
void init_pwm_dev(void)
Definition: plat_pwm.c:528
uint8_t manual_pwm_idx_to_pwm_idx(uint8_t idx)
Definition: plat_pwm.c:472
uint8_t get_pwm_cache(uint8_t idx)
Definition: plat_pwm.c:464
uint8_t get_pwm_group_cache(uint8_t group)
Definition: plat_pwm.c:451
PWM_DEVICE_E
Definition: plat_pwm.h:25
@ PWM_DEVICE_E_FB_FAN_14
Definition: plat_pwm.h:39
@ PWM_DEVICE_E_FB_FAN_2
Definition: plat_pwm.h:27
@ PWM_DEVICE_E_PB_PUMB_FAN_1
Definition: plat_pwm.h:43
@ PWM_DEVICE_E_PB_PUMB_FAN_2
Definition: plat_pwm.h:44
@ PWM_DEVICE_E_FB_FAN_3
Definition: plat_pwm.h:28
@ PWM_DEVICE_E_FB_FAN_8
Definition: plat_pwm.h:33
@ PWM_DEVICE_E_PB_PUMB_FAN_3
Definition: plat_pwm.h:45
@ PWM_DEVICE_E_FB_FAN_4
Definition: plat_pwm.h:29
@ PWM_DEVICE_E_FB_FAN_5
Definition: plat_pwm.h:30
@ PWM_DEVICE_E_FB_FAN_7
Definition: plat_pwm.h:32
@ PWM_DEVICE_E_PB_PUMB_3
Definition: plat_pwm.h:42
@ PWM_DEVICE_E_PB_PUMB_2
Definition: plat_pwm.h:41
@ PWM_DEVICE_E_FB_FAN_12
Definition: plat_pwm.h:37
@ PWM_DEVICE_E_FB_FAN_9
Definition: plat_pwm.h:34
@ PWM_DEVICE_E_FB_FAN_1
Definition: plat_pwm.h:26
@ PWM_DEVICE_E_FB_FAN_10
Definition: plat_pwm.h:35
@ PWM_DEVICE_E_FB_FAN_6
Definition: plat_pwm.h:31
@ PWM_DEVICE_E_MAX
Definition: plat_pwm.h:47
@ PWM_DEVICE_E_FB_FAN_11
Definition: plat_pwm.h:36
@ PWM_DEVICE_E_PB_PUMB_1
Definition: plat_pwm.h:40
@ PWM_DEVICE_E_FB_FAN_13
Definition: plat_pwm.h:38
@ PWM_DEVICE_E_BB_FAN
Definition: plat_pwm.h:46
uint8_t ctl_pwm_pump(uint8_t pump1_duty, uint8_t pump2_duty, uint8_t pump3_duty)
Definition: plat_pwm.c:318
void abnormal_pump_redundant_transform()
Definition: plat_pwm.c:285
PWM_GROUP_E
Definition: plat_pwm.h:50
@ PWM_GROUP_E_MAX
Definition: plat_pwm.h:54
@ PWM_GROUP_E_HEX_FAN
Definition: plat_pwm.h:51
@ PWM_GROUP_E_RPU_FAN
Definition: plat_pwm.h:53
@ PWM_GROUP_E_PUMP
Definition: plat_pwm.h:52
REDUNDANCY_TRANSFORM_E
Definition: plat_pwm.h:73
@ REDUNDANCY_TRANSFORM_DISABLE
Definition: plat_pwm.h:74
@ REDUNDANCY_TRANSFORM_STEP_2B
Definition: plat_pwm.h:77
@ REDUNDANCY_TRANSFORM_STEP_1
Definition: plat_pwm.h:75
@ REDUNDANCY_TRANSFORM_STEP_2A
Definition: plat_pwm.h:76
uint8_t set_pwm_group(uint8_t group, uint8_t duty)
Definition: plat_pwm.c:427
uint8_t get_manual_pwm_cache(uint8_t idx)
Definition: plat_pwm.c:500
uint8_t ctl_all_pwm_dev(uint8_t duty)
Definition: plat_pwm.c:418
int ast_pwm_set(int duty)
Definition: plat_pwm.c:172
uint8_t nct7363_wdt_all_enable()
Definition: plat_pwm.c:143
void set_pwm_group_cache(uint8_t group, uint8_t duty)
Definition: plat_pwm.c:459
MANUAL_PWM_E
Definition: plat_pwm.h:57
@ MANUAL_PWM_E_MAX
Definition: plat_pwm.h:70
@ MANUAL_PWM_E_PUMP_3
Definition: plat_pwm.h:65
@ MANUAL_PWM_E_PUMP
Definition: plat_pwm.h:60
@ MANUAL_PWM_E_HEX_FAN
Definition: plat_pwm.h:59
@ MANUAL_PWM_E_RPU_FAN
Definition: plat_pwm.h:61
@ MANUAL_PWM_E_PUMP_FAN_1
Definition: plat_pwm.h:66
@ MANUAL_PWM_E_PUMP_2
Definition: plat_pwm.h:64
@ MANUAL_PWM_E_PUMP_FAN_2
Definition: plat_pwm.h:67
@ MANUAL_PWM_E_PUMP_FAN_3
Definition: plat_pwm.h:68
@ MANUAL_PWM_E_PUMP_1
Definition: plat_pwm.h:63
@ MANUAL_PWM_E_RPU_PCB_FAN
Definition: plat_pwm.h:69
void set_manual_pwm_cache_to_default(void)
Definition: plat_pwm.c:516
uint8_t get_manual_pwm_flag(uint8_t idx)
Definition: plat_pwm.c:484
void set_manual_pwm_cache_to_zero(void)
Definition: plat_pwm.c:522
void set_manual_pwm_cache(uint8_t idx, uint8_t duty)
Definition: plat_pwm.c:508
void set_manual_pwm_flag(uint8_t idx, uint8_t flag)
Definition: plat_pwm.c:492
void reset_redundant_transform_status()
Definition: plat_pwm.c:407