SHOW:
|
|
- or go back to the newest paste.
1 | - | sudo apt install gcc-arm-linux-gnueabi # если не установлен ранее |
1 | + | diff --git a/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts b/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts |
2 | - | git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01 |
2 | + | index ca644541a..890a57717 100644 |
3 | - | cd u-boot/ |
3 | + | --- a/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts |
4 | - | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig |
4 | + | +++ b/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts |
5 | - | make ARCH=arm menuconfig # не обязательно, я там ничего не правил |
5 | + | @@ -20,7 +20,7 @@ |
6 | - | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 |
6 | + | }; |
7 | - | # после успешной сборки записать на карту |
7 | + | |
8 | - | sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8 |
8 | + | panel: panel { |
9 | - compatible = "lg,lb070wv8", "simple-panel"; | |
10 | + compatible = "qiaodian,qd43003c0-40", "simple-panel"; | |
11 | #address-cells = <1>; | |
12 | #size-cells = <0>; | |
13 | enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>; | |
14 | @@ -79,3 +79,17 @@ | |
15 | pinctrl-0 = <&uart0_pe_pins>; | |
16 | status = "okay"; | |
17 | }; | |
18 | + | |
19 | +&otg_sram { | |
20 | + status = "okay"; | |
21 | +}; | |
22 | + | |
23 | +&usb_otg { | |
24 | + dr_mode = "otg"; | |
25 | + status = "okay"; | |
26 | +}; | |
27 | + | |
28 | +&usbphy { | |
29 | + usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */ | |
30 | + status = "okay"; | |
31 | +}; | |
32 | diff --git a/arch/arm/boot/dts/suniv-f1c100s.dtsi b/arch/arm/boot/dts/suniv-f1c100s.dtsi | |
33 | index 26d8e5577..437bdf7d9 100644 | |
34 | --- a/arch/arm/boot/dts/suniv-f1c100s.dtsi | |
35 | +++ b/arch/arm/boot/dts/suniv-f1c100s.dtsi | |
36 | @@ -221,6 +221,31 @@ | |
37 | resets = <&ccu RST_BUS_UART2>; | |
38 | status = "disabled"; | |
39 | }; | |
40 | + usb_otg: usb@1c13000 { | |
41 | + compatible = "allwinner,suniv-musb"; | |
42 | + reg = <0x01c13000 0x0400>; | |
43 | + clocks = <&ccu CLK_BUS_OTG>; | |
44 | + resets = <&ccu RST_BUS_OTG>; | |
45 | + interrupts = <26>; | |
46 | + interrupt-names = "mc"; | |
47 | + phys = <&usbphy 0>; | |
48 | + phy-names = "usb"; | |
49 | + extcon = <&usbphy 0>; | |
50 | + allwinner,sram = <&otg_sram 1>; | |
51 | + status = "disabled"; | |
52 | + }; | |
53 | + | |
54 | + usbphy: phy@1c13400 { | |
55 | + compatible = "allwinner,suniv-usb-phy"; | |
56 | + reg = <0x01c13400 0x10>; | |
57 | + reg-names = "phy_ctrl"; | |
58 | + clocks = <&ccu CLK_USB_PHY0>; | |
59 | + clock-names = "usb0_phy"; | |
60 | + resets = <&ccu RST_USB_PHY0>; | |
61 | + reset-names = "usb0_reset"; | |
62 | + #phy-cells = <1>; | |
63 | + status = "disabled"; | |
64 | + }; | |
65 | fe0: display-frontend@1e00000 { | |
66 | compatible = "allwinner,suniv-f1c100s-display-frontend"; | |
67 | reg = <0x01e00000 0x20000>; | |
68 | diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c | |
69 | index 856927382..3cd9e946a 100644 | |
70 | --- a/drivers/phy/allwinner/phy-sun4i-usb.c | |
71 | +++ b/drivers/phy/allwinner/phy-sun4i-usb.c | |
72 | @@ -98,6 +98,7 @@ | |
73 | #define POLL_TIME msecs_to_jiffies(250) | |
74 | ||
75 | enum sun4i_usb_phy_type { | |
76 | + suniv_phy, | |
77 | sun4i_a10_phy, | |
78 | sun6i_a31_phy, | |
79 | sun8i_a33_phy, | |
80 | @@ -859,6 +860,14 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) | |
81 | return 0; | |
82 | } | |
83 | ||
84 | +static const struct sun4i_usb_phy_cfg suniv_cfg = { | |
85 | + .num_phys = 1, | |
86 | + .type = suniv_phy, | |
87 | + .disc_thresh = 3, | |
88 | + .phyctl_offset = REG_PHYCTL_A10, | |
89 | + .dedicated_clocks = true, | |
90 | +}; | |
91 | + | |
92 | static const struct sun4i_usb_phy_cfg sun4i_a10_cfg = { | |
93 | .num_phys = 3, | |
94 | .type = sun4i_a10_phy, | |
95 | @@ -973,6 +982,7 @@ static const struct sun4i_usb_phy_cfg sun50i_h6_cfg = { | |
96 | }; | |
97 | ||
98 | static const struct of_device_id sun4i_usb_phy_of_match[] = { | |
99 | + { .compatible = "allwinner,suniv-usb-phy", .data = &suniv_cfg }, | |
100 | { .compatible = "allwinner,sun4i-a10-usb-phy", .data = &sun4i_a10_cfg }, | |
101 | { .compatible = "allwinner,sun5i-a13-usb-phy", .data = &sun5i_a13_cfg }, | |
102 | { .compatible = "allwinner,sun6i-a31-usb-phy", .data = &sun6i_a31_cfg }, | |
103 | diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c | |
104 | index 832a41f9e..83f3fa5b0 100644 | |
105 | --- a/drivers/usb/musb/sunxi.c | |
106 | +++ b/drivers/usb/musb/sunxi.c | |
107 | @@ -714,14 +714,17 @@ static int sunxi_musb_probe(struct platform_device *pdev) | |
108 | INIT_WORK(&glue->work, sunxi_musb_work); | |
109 | glue->host_nb.notifier_call = sunxi_musb_host_notifier; | |
110 | ||
111 | - if (of_device_is_compatible(np, "allwinner,sun4i-a10-musb")) | |
112 | + if (of_device_is_compatible(np, "allwinner,sun4i-a10-musb") || | |
113 | + of_device_is_compatible(np, "allwinner,suniv-musb")) { | |
114 | set_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags); | |
115 | + } | |
116 | ||
117 | if (of_device_is_compatible(np, "allwinner,sun6i-a31-musb")) | |
118 | set_bit(SUNXI_MUSB_FL_HAS_RESET, &glue->flags); | |
119 | ||
120 | if (of_device_is_compatible(np, "allwinner,sun8i-a33-musb") || | |
121 | - of_device_is_compatible(np, "allwinner,sun8i-h3-musb")) { | |
122 | + of_device_is_compatible(np, "allwinner,sun8i-h3-musb") || | |
123 | + of_device_is_compatible(np, "allwinner,suniv-musb")) { | |
124 | set_bit(SUNXI_MUSB_FL_HAS_RESET, &glue->flags); | |
125 | set_bit(SUNXI_MUSB_FL_NO_CONFIGDATA, &glue->flags); | |
126 | } | |
127 | @@ -812,6 +815,7 @@ static int sunxi_musb_remove(struct platform_device *pdev) | |
128 | } | |
129 | ||
130 | static const struct of_device_id sunxi_musb_match[] = { | |
131 | + { .compatible = "allwinner,suniv-musb", }, | |
132 | { .compatible = "allwinner,sun4i-a10-musb", }, | |
133 | { .compatible = "allwinner,sun6i-a31-musb", }, | |
134 | { .compatible = "allwinner,sun8i-a33-musb", }, |