blob: e589b04f78b7c5032001557276f97e81a7623f62 [file] [log] [blame]
Angel Ponsae593872020-04-04 18:50:57 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Chris Ching6fc39d42017-12-20 16:06:03 -07002
Marshall Dawsonf42344a2019-05-02 12:53:00 -06003#include <amdblocks/acpimmio.h>
Karthikeyan Ramasubramanian0dbea482021-03-08 23:23:50 -07004#include <amdblocks/i2c.h>
Chris Ching6fc39d42017-12-20 16:06:03 -07005#include <soc/iomap.h>
Marshall Dawsonf42344a2019-05-02 12:53:00 -06006#include <soc/i2c.h>
Justin TerAvest13101a72018-01-24 14:23:12 -07007#include "chip.h"
Zheng Bao533fc4d2021-10-30 21:31:04 +08008#include <drivers/i2c/designware/dw_i2c.h>
Justin TerAvest13101a72018-01-24 14:23:12 -07009
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060010static const struct soc_i2c_ctrlr_info i2c_ctrlr[] = {
Felix Heldd1da9572021-10-15 16:29:22 +020011 { I2C_MASTER_MODE, APU_I2C0_BASE, "I2CA" },
12 { I2C_MASTER_MODE, APU_I2C1_BASE, "I2CB" },
13 { I2C_MASTER_MODE, APU_I2C2_BASE, "I2CC" },
14 { I2C_MASTER_MODE, APU_I2C3_BASE, "I2CD" },
Aaron Durbin2b2c65c2018-01-08 10:48:05 -070015};
Chris Ching6fc39d42017-12-20 16:06:03 -070016
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060017const struct soc_i2c_ctrlr_info *soc_get_i2c_ctrlr_info(size_t *num_ctrlrs)
Chris Ching6fc39d42017-12-20 16:06:03 -070018{
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060019 *num_ctrlrs = ARRAY_SIZE(i2c_ctrlr);
20 return i2c_ctrlr;
Chris Ching6fc39d42017-12-20 16:06:03 -070021}
Justin TerAvest13101a72018-01-24 14:23:12 -070022
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060023const struct dw_i2c_bus_config *soc_get_i2c_bus_config(size_t *num_buses)
Aaron Durbinde3e84c2018-01-29 17:44:58 -070024{
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060025 const struct soc_amd_stoneyridge_config *config = config_of_soc();
Aaron Durbinde3e84c2018-01-29 17:44:58 -070026
Karthikeyan Ramasubramanian4f87ae12021-03-18 23:16:29 -060027 *num_buses = ARRAY_SIZE(config->i2c);
28 return config->i2c;
Justin TerAvest13101a72018-01-24 14:23:12 -070029}
Zheng Bao533fc4d2021-10-30 21:31:04 +080030
31void soc_i2c_misc_init(unsigned int bus, const struct dw_i2c_bus_config *cfg)
32{
33 /* Do nothing. */
34}