Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

NXP LPC18xx/43xx DMA MUX (DMA request router)

Required properties:
- compatible:	"nxp,lpc1850-dmamux"
- reg:		Memory map for accessing module
- #dma-cells:	Should be set to <3>.
		* 1st cell contain the master dma request signal
		* 2nd cell contain the mux value (0-3) for the peripheral
		* 3rd cell contain either 1 or 2 depending on the AHB
		  master used.
- dma-requests:	Number of DMA requests for the mux
- dma-masters:	phandle pointing to the DMA controller

The DMA controller node need to have the following poroperties:
- dma-requests:	Number of DMA requests the controller can handle

Example:

dmac: dma@40002000 {
	compatible = "nxp,lpc1850-gpdma", "arm,pl080", "arm,primecell";
	arm,primecell-periphid = <0x00041080>;
	reg = <0x40002000 0x1000>;
	interrupts = <2>;
	clocks = <&ccu1 CLK_CPU_DMA>;
	clock-names = "apb_pclk";
	#dma-cells = <2>;
	dma-channels = <8>;
	dma-requests = <16>;
	lli-bus-interface-ahb1;
	lli-bus-interface-ahb2;
	mem-bus-interface-ahb1;
	mem-bus-interface-ahb2;
	memcpy-burst-size = <256>;
	memcpy-bus-width = <32>;
};

dmamux: dma-mux {
	compatible = "nxp,lpc1850-dmamux";
	#dma-cells = <3>;
	dma-requests = <64>;
	dma-masters = <&dmac>;
};

uart0: serial@40081000 {
	compatible = "nxp,lpc1850-uart", "ns16550a";
	reg = <0x40081000 0x1000>;
	reg-shift = <2>;
	interrupts = <24>;
	clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
	clock-names = "uartclk", "reg";
	dmas = <&dmamux 1 1 2
		&dmamux 2 1 2>;
	dma-names = "tx", "rx";
};