Skip to main content
This guide describes the low-speed and high-speed I/O peripheral interface subsystems used in the Qualcomm Dragonwing IQ-9075 SoC. Low-speed interfaces (via QUP v3 serial engine):
  • UART, SPI, I2C, I3C
High-speed interfaces:
  • PCIe, USB

IQ-9075 Interface Overview

QUP v3 Protocol and GPIO Mapping

QUP0 (SE0–SE5)

QUP1 (SE0–SE6)

QUP2 (SE0–SE6)

QUP3 (SE0)

SPI-M = SPI Master

QUP Lane to Function Mapping

Set Up the Device Interface

Obtain Boot Logs

List Enabled Interfaces

Load QUP v3 Firmware

The Application Processor serial engines are managed by the Linux kernel. Firmware files are at:
Enable in kernel config:

Device Tree Configuration

IQ-9075 EVK reference device tree: arch/arm64/boot/dts/qcom/sa8775p.dtsi

Sample Configurations

Device Tree Properties

Modify Serial Engine Node

To enable or change a serial engine, modify the device tree and rebuild the kernel.
As a first step, refer to the “How to build the linux-qcom kernel for Qualcomm platform?” section from Ubuntu Qualcomm IOT Platform Support.
1

Set up host machine

2

Identify kernel version on device

3

Download and checkout kernel

4

Enable the interface in device tree

Device tree files for IQ-9075 EVK:
  • qcs9075-addons-iq-9075-evk.dts
  • qcs9075-iq-9075-evk.dts
  • sa8775p.dtsi
Example — enable UART12:
Example — enable I2C4:
5

Build the kernel

6

Extract and deploy DTB

Switch Serial Engine Protocol

To convert a serial engine from one protocol to another (e.g., SPI10 → I2C10):

Troubleshooting

Symptom: qcom-geni-se: firmware request failed
Symptom: No device node created; driver not loading.Verify device tree: status = "okay"; (not "ok" or "enable")
Symptom: qcom-geni-se: serial engine is already in useEnsure only one protocol is enabled per serial engine:

Enable Required Interfaces