device-driver-development

Identify Linux kernel device-driver development challenges across DT bindings, resource management, and lifecycle control.

8|Updated Jun 17, 2026
One-click install
npx skills add https://github.com/oghie/skillsets --skill device-driver-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: device-driver-development
Source: https://github.com/oghie/skillsets/tree/main/device_driver_development_skill
Command: npx skills add https://github.com/oghie/skillsets --skill device-driver-development

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

Linux kernel device-driver development is complex, requiring methodical planning, hardware bring-up, and rigorous validation to avoid regressions and crashes.

Core Features & Use Cases

  • Platform and register-device modeling with device-tree bindings, resource management, and lifecycle handling.
  • Safe probe/removal patterns, devm resource management, and error unwind guided by kernel engineering principles.
  • Debug, test, and maintain kernel drivers (I2C/SPI, regmap, MMIO, IRQ/DMA paths) across hardware bring-up.

Quick Start

Begin with a minimal probe by identifying hardware resources and performing a safe ID read to verify hardware presence before incrementally enabling resources.

Frequently Asked Questions about device-driver-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a Linux kernel device driver probe function safely?

Linux platform driver development requires modeling device-tree bindings, managing probe/removal lifecycles, and handling regmap, MMIO, IRQ, and DMA resources. It enforces version-aware API usage and devm_ resource management to prevent kernel crashes during hardware bring-up.

What is the best way to manage resources in a platform driver to avoid memory leaks?

The best way to manage platform driver resources is using devm_ helpers for allocation and registration. This ensures automatic resource release during probe failure unwinds and driver removal, maintaining strict lifecycle control and preventing memory leaks.

Why does my Linux kernel driver crash during interrupt handling?

Linux kernel drivers crash during interrupt handling when IRQ resource ordering is misconfigured or devm_ cleanup is bypassed. Enforcing interrupt handling discipline and proper resource ordering during probe prevents these instability issues.

How do I debug I2C and SPI bus-device drivers during hardware bring-up?

Debug I2C and SPI bus-device drivers by validating regmap configurations and checking MMIO, IRQ, and DMA paths. Apply methodical debugging techniques across hardware bring-up to isolate register access faults and interrupt handling errors.

Do I need documented device-tree bindings to upstream a Linux kernel driver?

Documented device-tree bindings are required for upstreaming Linux kernel drivers. They define hardware resources and compatible strings, ensuring proper platform and bus-device modeling for community acceptance and upstream readiness.