1 1.4 martin /* $NetBSD: onewirereg.h,v 1.4 2019/10/25 16:25:14 martin Exp $ */ 2 1.1 riz /* $OpenBSD: onewirereg.h,v 1.1 2006/03/04 16:27:03 grange Exp $ */ 3 1.1 riz 4 1.1 riz /* 5 1.1 riz * Copyright (c) 2006 Alexander Yurchenko <grange (at) openbsd.org> 6 1.1 riz * 7 1.1 riz * Permission to use, copy, modify, and distribute this software for any 8 1.1 riz * purpose with or without fee is hereby granted, provided that the above 9 1.1 riz * copyright notice and this permission notice appear in all copies. 10 1.1 riz * 11 1.1 riz * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 1.1 riz * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 1.1 riz * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 1.1 riz * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 1.1 riz * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 1.1 riz * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 1.1 riz * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 1.1 riz */ 19 1.1 riz 20 1.1 riz #ifndef _DEV_ONEWIRE_ONEWIREREG_H_ 21 1.1 riz #define _DEV_ONEWIRE_ONEWIREREG_H_ 22 1.1 riz 23 1.1 riz /* 24 1.1 riz * 1-Wire bus protocol definitions. 25 1.1 riz */ 26 1.1 riz 27 1.1 riz /* 28 1.1 riz * 64-bit ROM section. 29 1.1 riz */ 30 1.1 riz 31 1.1 riz /* Family code */ 32 1.1 riz #define ONEWIRE_ROM_FAMILY(x) ((x) & 0xff) 33 1.1 riz #define ONEWIRE_ROM_FAMILY_TYPE(x) ((x) & 0x7f) 34 1.1 riz #define ONEWIRE_ROM_FAMILY_CUSTOM(x) (((x) >> 7) & 0x1) 35 1.1 riz 36 1.1 riz /* Serial number */ 37 1.4 martin #define ONEWIRE_ROM_SN(x) (((x) >> 8) & ((uint64_t)0xffffffffffffULL)) 38 1.1 riz 39 1.1 riz /* CRC */ 40 1.1 riz #define ONEWIRE_ROM_CRC(x) (((x) >> 56) & 0xff) 41 1.1 riz 42 1.1 riz /* 43 1.1 riz * Command set. 44 1.1 riz */ 45 1.1 riz 46 1.1 riz /* ROM commands */ 47 1.1 riz #define ONEWIRE_CMD_READ_ROM 0x33 48 1.1 riz #define ONEWIRE_CMD_SKIP_ROM 0xcc 49 1.1 riz #define ONEWIRE_CMD_MATCH_ROM 0x55 50 1.1 riz #define ONEWIRE_CMD_SEARCH_ROM 0xf0 51 1.1 riz #define ONEWIRE_CMD_OVERDRIVE_SKIP_ROM 0x3c 52 1.1 riz #define ONEWIRE_CMD_OVERDRIVE_MATCH_ROM 0x69 53 1.1 riz 54 1.1 riz /* Scratchpad commands */ 55 1.1 riz #define ONEWIRE_CMD_READ_SCRATCHPAD 0xaa 56 1.1 riz #define ONEWIRE_CMD_WRITE_SCRATCHPAD 0x0f 57 1.1 riz #define ONEWIRE_CMD_COPY_SCRATCHPAD 0x55 58 1.1 riz 59 1.1 riz /* Memory commands */ 60 1.1 riz #define ONEWIRE_CMD_READ_MEMORY 0xf0 61 1.1 riz #define ONEWIRE_CMD_WRITE_MEMORY 0x0f 62 1.1 riz #define ONEWIRE_CMD_EXT_READ_MEMORY 0xa5 63 1.1 riz 64 1.1 riz /* Password commands */ 65 1.1 riz #define ONEWIRE_CMD_READ_SUBKEY 0x66 66 1.1 riz #define ONEWIRE_CMD_WRITE_SUBKEY 0x99 67 1.1 riz #define ONEWIRE_CMD_WRITE_PASSWORD 0x5a 68 1.1 riz 69 1.1 riz /* Status commands */ 70 1.1 riz #define ONEWIRE_CMD_READ_STATUS 0xaa 71 1.1 riz #define ONEWIRE_CMD_WRITE_STATUS 0x55 72 1.1 riz 73 1.1 riz #endif /* !_DEV_ONEWIRE_ONEWIREREG_H_ */ 74