w1_smem.c 1.2 KB

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