OpenBIC
OpenSource Bridge-IC
plat_ioexp.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 PLAT_IOEXP_H
18#define PLAT_IOEXP_H
19
20#define PCA6414A_INPUT_PORT_0 0x00
21#define PCA6414A_INPUT_PORT_1 0x01
22#define PCA6414A_OUTPUT_PORT_0 0x02
23#define PCA6414A_OUTPUT_PORT_1 0x03
24#define PCA6414A_CONFIG_0 0x06
25#define PCA6414A_CONFIG_1 0x07
26
27#define TCA6424A_INPUT_PORT_0 0x00
28#define TCA6424A_INPUT_PORT_1 0x01
29#define TCA6424A_INPUT_PORT_2 0x02
30#define TCA6424A_OUTPUT_PORT_0 0x04
31#define TCA6424A_OUTPUT_PORT_1 0x05
32#define TCA6424A_OUTPUT_PORT_2 0x06
33#define TCA6424A_CONFIG_0 0x0C
34#define TCA6424A_CONFIG_1 0x0D
35#define TCA6424A_CONFIG_2 0x0E
36#define U200052_IO_ADDR 0x3A
37#define U200053_IO_ADDR 0x3B
38#define U200070_IO_ADDR 0x3C
39#define U200051_IO_I2C_BUS I2C_BUS1
40#define U200052_IO_I2C_BUS I2C_BUS1
41#define U200053_IO_I2C_BUS I2C_BUS1
42#define U200070_IO_I2C_BUS I2C_BUS1
43
44#define U200052_IO_INIT_VAL 0xC0
45#define U200053_IO_INIT_VAL 0x40
46#define U200070_IO_INIT_VAL 0x07
47
48#define HAMSA_MFIO19 1
49#define HAMSA_MFIO6 6
50#define HAMSA_MFIO8 7
51#define HAMSA_MFIO10 0
52#define MEDHA0_MFIO6 7
53#define MEDHA0_MFIO8 6
54#define MEDHA0_MFIO10 5
55#define MEDHA1_MFIO6 4
56#define MEDHA1_MFIO8 3
57#define MEDHA1_MFIO10 2
58
59bool pca6416a_i2c_read(uint8_t offset, uint8_t *data, uint8_t len);
60bool pca6416a_i2c_write(uint8_t offset, uint8_t *data, uint8_t len);
62bool tca6424a_i2c_read(uint8_t offset, uint8_t *data, uint8_t len);
63bool tca6424a_i2c_read_drive_value(uint8_t group, uint8_t bit, uint8_t *data);
64bool tca6424a_i2c_write(uint8_t offset, uint8_t *data, uint8_t len);
65bool tca6424a_i2c_write_bit(uint8_t offset, uint8_t bit, uint8_t val);
72void ioexp_init(void);
73void init_U200052_IO();
74void init_U200053_IO();
75void init_U200070_IO();
76void set_pca6554apw_ioe_value(uint8_t ioe_bus, uint8_t ioe_addr, uint8_t ioe_reg, uint8_t value);
77int get_pca6554apw_ioe_value(uint8_t ioe_bus, uint8_t ioe_addr, uint8_t ioe_reg, uint8_t *value);
78
79#endif
uint32_t val
Definition: plat_util.c:43
uint8_t data[]
Definition: isl69259.c:2
bool tca6424a_i2c_write(uint8_t offset, uint8_t *data, uint8_t len)
Definition: plat_ioexp.c:92
bool tca6424a_i2c_read_drive_value(uint8_t group, uint8_t bit, uint8_t *data)
Definition: plat_ioexp.c:50
bool pca6416a_i2c_write(uint8_t offset, uint8_t *data, uint8_t len)
Definition: plat_ioexp.c:25
void set_medha1_mfio_6_8_10_input()
Definition: plat_ioexp.c:134
void set_medha0_mfio_6_8_10_output()
Definition: plat_ioexp.c:148
void set_pca6554apw_ioe_value(uint8_t ioe_bus, uint8_t ioe_addr, uint8_t ioe_reg, uint8_t value)
Definition: plat_ioexp.c:208
bool tca6424a_i2c_write_bit(uint8_t offset, uint8_t bit, uint8_t val)
Definition: plat_ioexp.c:97
void ioexp_init(void)
Definition: plat_ioexp.c:177
void init_U200053_IO()
Definition: plat_ioexp.c:263
bool pca6416a_i2c_read(uint8_t offset, uint8_t *data, uint8_t len)
Definition: plat_ioexp.c:20
void set_medha1_mfio_6_8_10_output()
Definition: plat_ioexp.c:155
bool tca6424a_i2c_read(uint8_t offset, uint8_t *data, uint8_t len)
Definition: plat_ioexp.c:45
void set_medha0_mfio_6_8_10_input()
Definition: plat_ioexp.c:127
void set_hamsa_mfio_6_8_10_input()
Definition: plat_ioexp.c:120
int get_pca6554apw_ioe_value(uint8_t ioe_bus, uint8_t ioe_addr, uint8_t ioe_reg, uint8_t *value)
Definition: plat_ioexp.c:227
void init_U200052_IO()
Definition: plat_ioexp.c:253
bool is_tca6424a_accessible()
Definition: plat_ioexp.c:40
void init_U200070_IO()
Definition: plat_ioexp.c:273
void set_hamsa_mfio_6_8_10_output()
Definition: plat_ioexp.c:141
uint32_t offset
Definition: pldm_firmware_update.h:0