Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1)   AM33xx MUSB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) ~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) - compatible: ti,am33xx-usb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) - reg: offset and length of the usbss register sets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) - ti,hwmods : must be "usb_otg_hs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) The glue layer contains multiple child nodes. It is required to have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) at least a control module node, USB node and a PHY node. The second USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) node and its PHY node are optional. The DMA node is also optional.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) Reset module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) ~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) - compatible: ti,am335x-usb-ctrl-module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) - reg: offset and length of the "USB control registers" in the "Control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)   Module" block. A second offset and length for the USB wake up control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)   in the same memory block.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)   the USB wake up control register.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) USB PHY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) ~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) compatible: ti,am335x-usb-phy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) reg: offset and length of the "USB PHY" register space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) ti,ctrl_mod: reference to the "reset module" node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) reg-names: phy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) The PHY should have a "phy" alias numbered properly in the alias
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) ~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) - compatible: ti,musb-am33xx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) - reg: offset and length of "USB Controller Registers", and offset and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)   length of "USB Core" register space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) - reg-names: control for the ""USB Controller Registers" and "mc" for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)   "USB Core" register space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) - interrupts: USB interrupt number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) - interrupt-names: mc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) - dr_mode: Should be one of "host", "peripheral" or "otg".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) - mentor,multipoint: Should be "1" indicating the musb controller supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)   multipoint. This is a MUSB configuration-specific setting.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) - mentor,num-eps: Specifies the number of endpoints. This is also a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   MUSB configuration-specific setting. Should be set to "16"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) - mentor,ram-bits: Specifies the ram address size. Should be set to "12"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) - mentor,power: Should be "500". This signifies the controller can supply up to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)   500mA when operating in host mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) - phys: reference to the USB phy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) - dmas: specifies the dma channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) - dma-names: specifies the names of the channels. Use "rxN" for receive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)   and "txN" for transmit endpoints. N specifies the endpoint number.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) The controller should have an "usb" alias numbered properly in the alias
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) node.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) ~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) - compatible: ti,am3359-cppi41
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) - reg: offset and length of the following register spaces: USBSS, USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)   CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) - reg-names: glue, controller, scheduler, queuemgr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) - #dma-cells: should be set to 2. The first number represents the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)   endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)   for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)   1 for TX transfers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) - #dma-channels: should be set to 30 representing the 15 endpoints for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)   each USB instance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) ~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) The following example contains all the nodes as used on am335x-evm:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) aliases {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	usb0 = &usb0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	usb1 = &usb1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	phy0 = &usb0_phy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	phy1 = &usb1_phy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) usb: usb@47400000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	compatible = "ti,am33xx-usb";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	reg = <0x47400000 0x1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	ranges;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	#address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	#size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	ti,hwmods = "usb_otg_hs";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	ctrl_mod: control@44e10000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 		compatible = "ti,am335x-usb-ctrl-module";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 		reg = <0x44e10620 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 			0x44e10648 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 		reg-names = "phy_ctrl", "wakeup";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	usb0_phy: usb-phy@47401300 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 		compatible = "ti,am335x-usb-phy";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 		reg = <0x47401300 0x100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 		reg-names = "phy";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 		ti,ctrl_mod = <&ctrl_mod>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		#phy-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	usb0: usb@47401000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 		compatible = "ti,musb-am33xx";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 		reg = <0x47401400 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 			0x47401000 0x200>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 		reg-names = "mc", "control";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 		interrupts = <18>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 		interrupt-names = "mc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 		dr_mode = "otg"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 		mentor,multipoint = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 		mentor,num-eps = <16>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 		mentor,ram-bits = <12>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 		mentor,power = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 		phys = <&usb0_phy>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 		dmas = <&cppi41dma  0 0 &cppi41dma  1 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 			&cppi41dma  2 0 &cppi41dma  3 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 			&cppi41dma  4 0 &cppi41dma  5 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 			&cppi41dma  6 0 &cppi41dma  7 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 			&cppi41dma  8 0 &cppi41dma  9 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 			&cppi41dma 10 0 &cppi41dma 11 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 			&cppi41dma 12 0 &cppi41dma 13 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 			&cppi41dma 14 0 &cppi41dma  0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 			&cppi41dma  1 1 &cppi41dma  2 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 			&cppi41dma  3 1 &cppi41dma  4 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 			&cppi41dma  5 1 &cppi41dma  6 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 			&cppi41dma  7 1 &cppi41dma  8 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 			&cppi41dma  9 1 &cppi41dma 10 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 			&cppi41dma 11 1 &cppi41dma 12 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 			&cppi41dma 13 1 &cppi41dma 14 1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 		dma-names =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 			"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 			"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 			"rx14", "rx15",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 			"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 			"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 			"tx14", "tx15";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	usb1_phy: usb-phy@47401b00 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 		compatible = "ti,am335x-usb-phy";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 		reg = <0x47401b00 0x100>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 		reg-names = "phy";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 		ti,ctrl_mod = <&ctrl_mod>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 		#phy-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	usb1: usb@47401800 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 		compatible = "ti,musb-am33xx";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 		reg = <0x47401c00 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 			0x47401800 0x200>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 		reg-names = "mc", "control";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 		interrupts = <19>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 		interrupt-names = "mc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 		dr_mode = "host"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 		mentor,multipoint = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 		mentor,num-eps = <16>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 		mentor,ram-bits = <12>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 		mentor,power = <500>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 		phys = <&usb1_phy>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 		dmas = <&cppi41dma 15 0 &cppi41dma 16 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 			&cppi41dma 17 0 &cppi41dma 18 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 			&cppi41dma 19 0 &cppi41dma 20 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 			&cppi41dma 21 0 &cppi41dma 22 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 			&cppi41dma 23 0 &cppi41dma 24 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 			&cppi41dma 25 0 &cppi41dma 26 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 			&cppi41dma 27 0 &cppi41dma 28 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 			&cppi41dma 29 0 &cppi41dma 15 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 			&cppi41dma 16 1 &cppi41dma 17 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 			&cppi41dma 18 1 &cppi41dma 19 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 			&cppi41dma 20 1 &cppi41dma 21 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 			&cppi41dma 22 1 &cppi41dma 23 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 			&cppi41dma 24 1 &cppi41dma 25 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 			&cppi41dma 26 1 &cppi41dma 27 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 			&cppi41dma 28 1 &cppi41dma 29 1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 		dma-names =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 			"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 			"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 			"rx14", "rx15",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 			"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 			"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 			"tx14", "tx15";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	cppi41dma: dma-controller@7402000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 		compatible = "ti,am3359-cppi41";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 		reg =  <0x47400000 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 			0x47402000 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 			0x47403000 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 			0x47404000 0x4000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 		reg-names = "glue", "controller", "scheduler", "queuemgr";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 		interrupts = <17>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 		interrupt-names = "glue";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 		#dma-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 		#dma-channels = <30>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 		#dma-requests = <256>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) };