1*abb0b01eSSimon Glass /* 2*abb0b01eSSimon Glass * Copyright (c) 2015 Google, Inc 3*abb0b01eSSimon Glass * Written by Simon Glass <sjg@chromium.org> 4*abb0b01eSSimon Glass * 5*abb0b01eSSimon Glass * SPDX-License-Identifier: GPL-2.0+ 6*abb0b01eSSimon Glass */ 7*abb0b01eSSimon Glass 8*abb0b01eSSimon Glass #include <common.h> 9*abb0b01eSSimon Glass #include <dm.h> 10*abb0b01eSSimon Glass #include <i2c.h> 11*abb0b01eSSimon Glass #include <asm/io.h> 12*abb0b01eSSimon Glass 13*abb0b01eSSimon Glass int intel_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) 14*abb0b01eSSimon Glass { 15*abb0b01eSSimon Glass return -ENOSYS; 16*abb0b01eSSimon Glass } 17*abb0b01eSSimon Glass 18*abb0b01eSSimon Glass int intel_i2c_probe_chip(struct udevice *bus, uint chip_addr, uint chip_flags) 19*abb0b01eSSimon Glass { 20*abb0b01eSSimon Glass return -ENOSYS; 21*abb0b01eSSimon Glass } 22*abb0b01eSSimon Glass 23*abb0b01eSSimon Glass int intel_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) 24*abb0b01eSSimon Glass { 25*abb0b01eSSimon Glass return 0; 26*abb0b01eSSimon Glass } 27*abb0b01eSSimon Glass 28*abb0b01eSSimon Glass static int intel_i2c_probe(struct udevice *dev) 29*abb0b01eSSimon Glass { 30*abb0b01eSSimon Glass return 0; 31*abb0b01eSSimon Glass } 32*abb0b01eSSimon Glass 33*abb0b01eSSimon Glass static const struct dm_i2c_ops intel_i2c_ops = { 34*abb0b01eSSimon Glass .xfer = intel_i2c_xfer, 35*abb0b01eSSimon Glass .probe_chip = intel_i2c_probe_chip, 36*abb0b01eSSimon Glass .set_bus_speed = intel_i2c_set_bus_speed, 37*abb0b01eSSimon Glass }; 38*abb0b01eSSimon Glass 39*abb0b01eSSimon Glass static const struct udevice_id intel_i2c_ids[] = { 40*abb0b01eSSimon Glass { .compatible = "intel,ich-i2c" }, 41*abb0b01eSSimon Glass { } 42*abb0b01eSSimon Glass }; 43*abb0b01eSSimon Glass 44*abb0b01eSSimon Glass U_BOOT_DRIVER(intel_i2c) = { 45*abb0b01eSSimon Glass .name = "i2c_intel", 46*abb0b01eSSimon Glass .id = UCLASS_I2C, 47*abb0b01eSSimon Glass .of_match = intel_i2c_ids, 48*abb0b01eSSimon Glass .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip), 49*abb0b01eSSimon Glass .ops = &intel_i2c_ops, 50*abb0b01eSSimon Glass .probe = intel_i2c_probe, 51*abb0b01eSSimon Glass }; 52