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

* Renesas USB DMA Controller Device Tree bindings

Required Properties:
-compatible: "renesas,<soctype>-usb-dmac", "renesas,usb-dmac" as fallback.
	Examples with soctypes are:
	  - "renesas,r8a7790-usb-dmac" (R-Car H2)
	  - "renesas,r8a7791-usb-dmac" (R-Car M2-W)
	  - "renesas,r8a7793-usb-dmac" (R-Car M2-N)
	  - "renesas,r8a7794-usb-dmac" (R-Car E2)
	  - "renesas,r8a7795-usb-dmac" (R-Car H3)
- reg: base address and length of the registers block for the DMAC
- interrupts: interrupt specifiers for the DMAC, one for each entry in
  interrupt-names.
- interrupt-names: one entry per channel, named "ch%u", where %u is the
  channel number ranging from zero to the number of channels minus one.
- clocks: a list of phandle + clock-specifier pairs.
- #dma-cells: must be <1>, the cell specifies the channel number of the DMAC
  port connected to the DMA client.
- dma-channels: number of DMA channels

Example: R8A7790 (R-Car H2) USB-DMACs

	usb_dmac0: dma-controller@e65a0000 {
		compatible = "renesas,r8a7790-usb-dmac", "renesas,usb-dmac";
		reg = <0 0xe65a0000 0 0x100>;
		interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH
			      0 109 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "ch0", "ch1";
		clocks = <&mstp3_clks R8A7790_CLK_USBDMAC0>;
		#dma-cells = <1>;
		dma-channels = <2>;
	};

	usb_dmac1: dma-controller@e65b0000 {
		compatible = "renesas,usb-dmac";
		reg = <0 0xe65b0000 0 0x100>;
		interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH
			      0 110 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "ch0", "ch1";
		clocks = <&mstp3_clks R8A7790_CLK_USBDMAC1>;
		#dma-cells = <1>;
		dma-channels = <2>;
	};