From d3e19cf9195e7308c6333bbbbc12f8db8fa2d079 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 18 Sep 2018 10:35:24 +0300 Subject: w1: Add 1-Wire uclass We might want to use 1-Wire devices connected on boards such as EEPROMs in U-Boot. Provide a framework to be able to do that. Signed-off-by: Maxime Ripard [eugen.hristev@microchip.com: reworked] Signed-off-by: Eugen Hristev --- include/w1.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 include/w1.h (limited to 'include/w1.h') diff --git a/include/w1.h b/include/w1.h new file mode 100644 index 00000000000..b36e0f8d5d4 --- /dev/null +++ b/include/w1.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: GPL-2.0+ + * + * Copyright (c) 2015 Free Electrons + * Copyright (c) 2015 NextThing Co + * + */ + +#ifndef __W1_H +#define __W1_H + +#include + +#define W1_FAMILY_DS24B33 0x23 +#define W1_FAMILY_DS2431 0x2d + +struct w1_device { + u64 id; +}; + +struct w1_ops { + u8 (*read_byte)(struct udevice *dev); + bool (*reset)(struct udevice *dev); + u8 (*triplet)(struct udevice *dev, bool bdir); + void (*write_byte)(struct udevice *dev, u8 byte); +}; + +int w1_get_bus(int busnum, struct udevice **busp); +u8 w1_get_device_family(struct udevice *dev); + +int w1_read_buf(struct udevice *dev, u8 *buf, unsigned int count); +int w1_read_byte(struct udevice *dev); +int w1_reset_select(struct udevice *dev); +int w1_write_buf(struct udevice *dev, u8 *buf, unsigned int count); +int w1_write_byte(struct udevice *dev, u8 byte); + +#endif -- cgit v1.2.3