OpenBIC
OpenSource Bridge-IC
p3h284x.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#ifndef P3H284X_H
18#define P3H284X_H
19
20#include "hal_i2c.h"
21#include "hal_i3c.h"
22
23#define P3H284X_DEFAULT_STATIC_ADDRESS 0x70
24
25#define P3H284X_DEVICE_INFO0_REG 0x0
26#define P3H284X_DEVICE_INFO1_REG 0x1
27#define P3H284X_PROTECTION_REG 0x10
28#define P3H284X_CONTROLLER_PORT_CONFIG 0x11
29#define P3H284X_TARGET_PORT_ENABLE 0x12
30#define P3H284X_HUB_NETWORK_OPERATION_MODE 0x15
31#define P3H284X_VOLT_LDO_SETTING 0x16
32#define P3H284X_TARGET_PORTS_MODE_SETTING 0x17
33#define P3H284X_TARGET_PORTS_AGENT_ENABLE 0x18
34#define P3H284X_TARGET_PORTS_PULLUP_SETTING 0x19
35#define P3H284X_TARGET_PORTS_GPIO_ENABLE 0x1E
36#define P3H284X_TARGET_PORTSHUB_NETWORK_CONNECTION 0x51
37#define P3H284X_TARGET_PORTS_PULLUP_ENABLE 0x53
38
39/* 0x10 : Unlock Device Configuration Protection Code */
40#define P3H284X_PROTECTION_LOCK 0x00
41#define P3H284X_PROTECTION_UNLOCK 0x6A
42
43/* 0x15 : Master Side Port Configuration */
44#define P3H284X_HUB_NETWORK_ALWAYS_I3C 5
45
46/* 0x16 : Interface Voltage LDO Setting */
47#define TP_VCCIO1_OFFSET 6
48#define TP_VCCIO0_OFFSET 4
49#define CP1_OFFSET 2
50#define CP0_OFFSET 0
51
52/* 0x17 : Master Side Port Configuration */
53#define CP_OD_ONLY 4
54
55/* 0x19 : Pull-up Resistor Value */
56#define TARGET_PORTS_VCCIO0_PULLUP_OFFSET 6
57#define TARGET_PORTS_VCCIO1_PULLUP_OFFSET 4
58
59#define P3H284X_SSPORTS_ALL_DISCONNECT 0x00
60
66};
67
73};
74
75bool p3h284x_i2c_mode_only_init(uint8_t bus, uint8_t slave_port, uint8_t ldo_volt,
76 uint8_t pullup_resistor);
77bool p3h284x_select_slave_port_connect(uint8_t bus, uint8_t slave_port);
78bool p3h284x_i3c_mode_only_init(I3C_MSG *i3c_msg, uint8_t ldo_volt);
79bool p3h284x_set_slave_port(uint8_t bus, uint8_t addr, uint8_t setting);
80bool p3h284x_get_device_info(uint8_t bus, uint16_t *i3c_hub_type);
81bool p3h284x_get_device_info_i3c(uint8_t bus, uint16_t *i3c_hub_type);
82
83#endif
uint8_t addr
Definition: isl69259.c:0
bool p3h284x_i2c_mode_only_init(uint8_t bus, uint8_t slave_port, uint8_t ldo_volt, uint8_t pullup_resistor)
Definition: p3h284x.c:143
bool p3h284x_i3c_mode_only_init(I3C_MSG *i3c_msg, uint8_t ldo_volt)
Definition: p3h284x.c:229
p3g284x_ldo_volt
Definition: p3h284x.h:61
@ p3g284x_ldo_1_8_volt
Definition: p3h284x.h:65
@ p3g284x_ldo_1_1_volt
Definition: p3h284x.h:63
@ p3g284x_ldo_1_2_volt
Definition: p3h284x.h:64
@ p3g284x_ldo_1_0_volt
Definition: p3h284x.h:62
bool p3h284x_get_device_info(uint8_t bus, uint16_t *i3c_hub_type)
Definition: p3h284x.c:115
bool p3h284x_get_device_info_i3c(uint8_t bus, uint16_t *i3c_hub_type)
Definition: p3h284x.c:129
p3g284x_pull_up_resistor
Definition: p3h284x.h:68
@ p3g284x_pullup_1k_ohm
Definition: p3h284x.h:71
@ p3g284x_pullup_250_ohm
Definition: p3h284x.h:69
@ p3g284x_pullup_2k_ohm
Definition: p3h284x.h:72
@ p3g284x_pullup_500_ohm
Definition: p3h284x.h:70
bool p3h284x_set_slave_port(uint8_t bus, uint8_t addr, uint8_t setting)
Definition: p3h284x.c:280
bool p3h284x_select_slave_port_connect(uint8_t bus, uint8_t slave_port)
Definition: p3h284x.c:106
Definition: hal_i3c.h:105