Embedded Software Engineer - Linux Device Driver

Cirrus Logic

  • Austin, TX
  • Permanent
  • Full-time
  • 13 days ago
For nearly four decades, Cirrus Logic has been propelled by the top engineers in mixed-signal processing. Our rockstar team thrives on solving complex challenges with innovative end-user solutions for the world's top consumer brands. Cirrus Logic is also known for an award-winning culture, which was built on a foundation of inclusion and fairness, meaningful community engagement and delivering enjoyable employee experiences at every turn. But we couldn't do it without our extraordinary workforce - and that's where you come in. Join our team and help us continue to make Cirrus Logic an exceptional place to grow your career!We are hiring a Linux device driver engineer to join the MSP Platforms group to spearhead our Linux driver and user space applications efforts. You will be a proactive team member keen to seek real life solutions and improve your learning in the audio applications space that serves electronics companies globally! You will collaborate with Application, Validation and Emulation teams to deliver robust, scalable, and reliable software that meets critical design objectives. \nResponsibilities
  • Design, build, and maintain efficient, reusable, and reliable Linux device drivers and documentation
  • Code, bring-up and debug Linux drivers for new IP blocks in our FPGA based platforms
  • Learn audio specifications such as ALSA, SoundWire and SWI3S becoming the team expert
  • Develop and maintain user-space code used to communicate with PC side tools for comms and testing
  • Architect, develop, and integrate Linux drivers in a regulated product development process
  • Collaborate with other teams such as Applications, Validation, Emulation, Tools and SQA
  • Perform defect tracking and peer code reviews
Required Skills and Qualifications
  • Bachelor's in CS/EE and good working knowledge of Linux device driver development
  • 3 to 7+ years of experience
  • Deep knowledge of Linux kernel architecture and subsystems
  • U-boot configuration and development for embedded Arm systems.
  • Devicetree development, debug and maintenance for multiple hardware platforms
  • Experience with Arm 32-bit (arm) and Arm 64-bit (aarch64) embedded devices and environments
  • Strong understanding of serial buses and protocols (e.g., USB, Ethernet, I2C, SPI, I2S, UART)
  • Strong knowledge of version control systems such as Git and Bitbucket and automation servers such as Jenkins and experience with defect management systems such as Jira
  • Incorporate strong troubleshooting skills using software (automated tests, debuggers), hardware (logic analyzers, oscilloscopes, DMMs), and other resources (schematics and datasheets)
  • Highly dynamic, results-oriented, and self-motivated personality able to work in a small team with minimal direction
  • Excellent written and verbal interpersonal skills
  • Ability to work across functional groups and organizations
Preferred Skills and Qualifications
  • Master's in CS/EE
  • Good understanding of more advanced serial buses and protocols (e.g., I3C, SoundWire, SWI3S, HDA, SPMI)
  • Linux PCIe and interrupt subsystems
  • Knowledge of Xilinx FPGA and SoCs such as Artix, Zynq and Zynq UltraScale+ operation
  • Upstreamed drivers into the Linux kernel
  • Successfully worked with customer design-in of semiconductors
\n#LI-KD1 #LI-HybridDiversity drives innovation at Cirrus Logic. Different approaches, ideas and points of view are both valued and respected, and employees are rewarded for their skills, experience and performance. Additionally, Cirrus Logic is an Equal Opportunity/Affirmative Action Employer, and we do not discriminate on the basis of race, color, national origin, pregnancy status, marital status, gender, age, religion, physical or mental disability, medical condition, veteran status, sexual orientation, gender identity, genetic information or any other characteristic protected by law.

Cirrus Logic