Kernel-4.18.0-80.el8_octeon-usb

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>;
     };
    

    };