1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * w1_smem.c 4 * 5 * Copyright (c) 2004 Evgeniy Polyakov <zbr@ioremap.net> 6 */ 7 8 #include <asm/types.h> 9 10 #include <linux/kernel.h> 11 #include <linux/module.h> 12 #include <linux/moduleparam.h> 13 #include <linux/device.h> 14 #include <linux/types.h> 15 16 #include <linux/w1.h> 17 18 #define W1_FAMILY_SMEM_01 0x01 19 #define W1_FAMILY_SMEM_81 0x81 20 21 static struct w1_family w1_smem_family_01 = { 22 .fid = W1_FAMILY_SMEM_01, 23 }; 24 25 static struct w1_family w1_smem_family_81 = { 26 .fid = W1_FAMILY_SMEM_81, 27 }; 28 29 static int __init w1_smem_init(void) 30 { 31 int err; 32 33 err = w1_register_family(&w1_smem_family_01); 34 if (err) 35 return err; 36 37 err = w1_register_family(&w1_smem_family_81); 38 if (err) { 39 w1_unregister_family(&w1_smem_family_01); 40 return err; 41 } 42 43 return 0; 44 } 45 46 static void __exit w1_smem_fini(void) 47 { 48 w1_unregister_family(&w1_smem_family_01); 49 w1_unregister_family(&w1_smem_family_81); 50 } 51 52 module_init(w1_smem_init); 53 module_exit(w1_smem_fini); 54 55 MODULE_AUTHOR("Evgeniy Polyakov <zbr@ioremap.net>"); 56 MODULE_DESCRIPTION("Driver for 1-wire Dallas network protocol, 64bit memory family."); 57 MODULE_LICENSE("GPL"); 58 MODULE_ALIAS("w1-family-" __stringify(W1_FAMILY_SMEM_01)); 59 MODULE_ALIAS("w1-family-" __stringify(W1_FAMILY_SMEM_81)); 60