atmel,sam-udp

Description

These nodes are “usb” bus nodes.

Atmel SAM USB Device Port (UDP) Controller

The UDP is a full-speed USB 2.0 device controller with the following features:
- 8 hardware endpoints (EP0-EP7)
- On-chip transceiver with 1.5kΩ pull-up on DDP
- 2668 bytes total FIFO memory
- Dual-bank support for EP1,2,4,5,6,7
- Full-speed operation (12 Mbps)

Endpoint allocation (odd=IN, even=OUT):
- EP0: Control endpoint
- EP1, EP3, EP5, EP7: IN endpoints
- EP2, EP4, EP6: OUT endpoints

This binding is compatible with SAM4S, SAM4E, SAM3S devices.

Examples

Example devicetree configuration:

  &pinctrl {
    udp_default: udp_default {
      group1 {
        pinmux = <PB10S_UDP_DDM>,
                 <PB11S_UDP_DDP>;
      };
    };
  };

  zephyr_udc0: &udp {
      status = "okay";

      pinctrl-0 = <&udp_default>;
      pinctrl-names = "default";
  };

Properties

Properties not inherited from the base binding file.

Name

Type

Details

num-bidir-endpoints

int

Number of bi-directional endpoints supported by hardware
(including EP0)

This property is required.

num-in-endpoints

int

Number of IN endpoints supported by hardware
(including EP0 IN)

num-out-endpoints

int

Number of OUT endpoints supported by hardware
(including EP0 OUT)

maximum-speed

string

Configures USB controllers to work up to a specific speed. Valid arguments are "super-speed", "high-speed", "full-speed" and "low-speed". If this is not passed via DT, USB controllers should use their maximum hardware capability.

Legal values: low-speed, full-speed, high-speed, super-speed

vbus-gpios

phandle-array

Control VBUS via GPIO pin.

pinctrl-0

phandles

Pin configuration/s for the first state. Content is specific to the
selected pin controller driver implementation.

pinctrl-1

phandles

Pin configuration/s for the second state. See pinctrl-0.

pinctrl-2

phandles

Pin configuration/s for the third state. See pinctrl-0.

pinctrl-3

phandles

Pin configuration/s for the fourth state. See pinctrl-0.

pinctrl-4

phandles

Pin configuration/s for the fifth state. See pinctrl-0.

pinctrl-names

string-array

Names for the provided states. The number of names needs to match the
number of states.