Linux USB Device Driver Developer

4 - 6 years

0 Lacs

Posted:3 days ago| Platform: Foundit logo

Apply

Work Mode

On-site

Job Type

Full Time

Job Description

Location:

Exp

We are looking for an experienced Linux USB Device Driver Developer to join our embedded software team. The candidate will work on USB driver development and integration, covering device-side gadget frameworks and core Linux USB architecture.

Key Responsibilities:

  • Understand the fundamentals of USB, including USB 1.1/2.0/3.x specifications, device descriptors (device, config, interface, endpoint), and transfer types (control, bulk, interrupt, isochronous, streams).
  • Handle USB power management, including bus/self-powered modes, suspend/resume, and Link Power Management (LPM).
  • Work with the Linux USB architecture encompassing USB core, enumeration, host controller drivers (EHCI, OHCI, XHCI, DWC3), gadget framework, and USB Device Controllers (UDC).
  • Develop and maintain USB class drivers such as HID, Mass Storage, CDC, Audio, and Video.
  • Develop device-side USB stacks using the Gadget API (usb_gadget, usb_ep), function drivers (g_ether, g_mass_storage, g_hid), and dynamic configurations using ConfigFS.
  • Manage USB endpoint handling, descriptors, and control requests.
  • Write USB device drivers including device tree handling (snps, dwc3), registering UDC drivers, and implementing callbacks (bind, unbind, setup).
  • Handle control requests and USB transfers using usb_ep_queue.
  • Collaborate with other teams to debug and optimize USB functionality.

Mandatory Skills:

  • Strong proficiency in C programming.
  • Good understanding of USB specifications and Linux USB architecture.
  • Experience in writing and debugging Linux USB Device Drivers.
  • Familiarity with Device Tree and Linux kernel development.
  • Knowledge of embedded Linux development tools.

Preferred Skills:

  • Experience with USB gadget framework and class drivers.
  • Exposure to kernel module programming and driver registration.
  • Knowledge of advanced power management features like LPM.
  • Experience with ConfigFS for USB device configuration.
  • Familiarity with debugging embedded USB hardware and software.

Education:

  • Bachelor's/Master's degree in Electronics, Computer Science, or related field.

Mock Interview

Practice Video Interview with JobPe AI

Start Job-Specific Interview
cta

Start Your Job Search Today

Browse through a variety of job opportunities tailored to your skills and preferences. Filter by location, experience, salary, and more to find your perfect fit.

Job Application AI Bot

Job Application AI Bot

Apply to 20+ Portals in one click

Download Now

Download the Mobile App

Instantly access job listings, apply easily, and track applications.

coding practice

Enhance Your Skills

Practice coding challenges to boost your skills

Start Practicing Now

RecommendedJobs for You