Kernel Driver W1-gpio

Logo

The Linux Kernel

7.0.0-rc1

Quick search

Contents

  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs
  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
    • Networking interfaces
    • Storage interfaces
    • Other subsystems
      • Accounting
      • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
      • EDAC Subsystem
      • FPGA
      • I2C/SMBus Subsystem
      • Industrial I/O
      • PCMCIA
      • Serial Peripheral Interface (SPI)
      • 1-Wire Subsystem
      • Watchdog Support
      • Virtualization Support
      • Hardware Monitoring
      • Compute Accelerators
      • Security Documentation
      • Crypto API
      • BPF Documentation
      • USB support
      • PCI Bus Subsystem
      • Assorted Miscellaneous Devices Documentation
      • PECI Subsystem
      • WMI Subsystem
      • TEE Subsystem
  • Locking
  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust
  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API
  • Firmware
  • Firmware and Devicetree
  • CPU architectures
  • Unsorted documentation
  • Translations

This Page

  • Show Source
Kernel driver w1-gpio¶

Author: Ville Syrjala <syrjala@sci.fi>

Description¶

GPIO 1-wire bus master driver. The driver uses the GPIO API to control the wire and the GPIO pin can be specified using GPIO machine descriptor tables. It is also possible to define the master using device tree, see Documentation/devicetree/bindings/w1/w1-gpio.yaml

Example (mach-at91)¶

#include <linux/gpio/machine.h> #include <linux/w1-gpio.h> static struct gpiod_lookup_table foo_w1_gpiod_table = { .dev_id = "w1-gpio", .table = { GPIO_LOOKUP_IDX("at91-gpio", AT91_PIN_PB20, NULL, 0, GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN), }, }; static struct w1_gpio_platform_data foo_w1_gpio_pdata = { .ext_pullup_enable_pin = -EINVAL, }; static struct platform_device foo_w1_device = { .name = "w1-gpio", .id = -1, .dev.platform_data = &foo_w1_gpio_pdata, }; ... at91_set_GPIO_periph(foo_w1_gpio_pdata.pin, 1); at91_set_multi_drive(foo_w1_gpio_pdata.pin, 1); gpiod_add_lookup_table(&foo_w1_gpiod_table); platform_device_register(&foo_w1_device); ©The kernel development community. | Powered by Sphinx 5.3.0 & Alabaster 0.7.16 | Page source

Từ khóa » W1-gpio Documentation