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

OCTEON/OCTEON+ USB BLOCK

1) Main node

   Required properties:

   - compatible: must be "cavium,octeon-5750-usbn"

   - reg: specifies the physical base address of the USBN block and
     the length of the memory mapped region.

   - #address-cells: specifies the number of cells needed to encode an
     address. The value must be 2.

   - #size-cells: specifies the number of cells used to represent the size
     of an address. The value must be 2.

   - ranges: specifies the translation between child address space and parent
     address space.

   - clock-frequency: speed of the USB reference clock. Allowed values are
     12000000, 24000000 or 48000000.

   - cavium,refclk-type: type of the USB reference clock. Allowed values are
     "crystal" or "external".

   - refclk-frequency: deprecated, use "clock-frequency".

   - refclk-type: deprecated, use "cavium,refclk-type".

2) Child node

   The main node must have one child node which describes the built-in
   USB controller.

   Required properties:

   - compatible: must be "cavium,octeon-5750-usbc"

   - reg: specifies the physical base address of the USBC block and
     the length of the memory mapped region.

   - interrupts: specifies the interrupt number for the USB controller.

3) Example:

	usbn: usbn@1180068000000 {
		compatible = "cavium,octeon-5750-usbn";
		reg = <0x11800 0x68000000 0x0 0x1000>;
		ranges; /* Direct mapping */
		#address-cells = <2>;
		#size-cells = <2>;
		clock-frequency = <12000000>;
		cavium,refclk-type = "crystal";

		usbc@16f0010000000 {
			compatible = "cavium,octeon-5750-usbc";
			reg = <0x16f00 0x10000000 0x0 0x80000>;
			interrupts = <0 56>;
		};
	};