hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm/boot/dts/exynos5250-arndale.dts
....@@ -10,10 +10,12 @@
1010 #include <dt-bindings/gpio/gpio.h>
1111 #include <dt-bindings/interrupt-controller/irq.h>
1212 #include <dt-bindings/input/input.h>
13
+#include <dt-bindings/clock/samsung,s2mps11.h>
14
+#include <dt-bindings/sound/samsung-i2s.h>
1315 #include "exynos5250.dtsi"
1416
1517 / {
16
- model = "Insignal Arndale evaluation board based on EXYNOS5250";
18
+ model = "Insignal Arndale evaluation board based on Exynos5250";
1719 compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
1820
1921 memory@40000000 {
....@@ -22,7 +24,7 @@
2224 };
2325
2426 chosen {
25
- bootargs = "console=ttySAC2,115200";
27
+ stdout-path = "serial2:115200n8";
2628 };
2729
2830 gpio_keys {
....@@ -71,32 +73,65 @@
7173 };
7274 };
7375
74
- regulators {
75
- compatible = "simple-bus";
76
- #address-cells = <1>;
77
- #size-cells = <0>;
78
-
79
- main_dc_reg: regulator@0 {
80
- compatible = "regulator-fixed";
81
- reg = <0>;
82
- regulator-name = "MAIN_DC";
76
+ panel: panel {
77
+ compatible = "boe,hv070wsa-100";
78
+ power-supply = <&vcc_3v3_reg>;
79
+ enable-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
80
+ port {
81
+ panel_ep: endpoint {
82
+ remote-endpoint = <&bridge_out_ep>;
83
+ };
8384 };
85
+ };
8486
85
- mmc_reg: regulator@1 {
86
- compatible = "regulator-fixed";
87
- reg = <1>;
88
- regulator-name = "VDD_33ON_2.8V";
89
- regulator-min-microvolt = <2800000>;
90
- regulator-max-microvolt = <2800000>;
91
- gpio = <&gpx1 1 GPIO_ACTIVE_LOW>;
92
- enable-active-high;
93
- };
87
+ main_dc_reg: regulator-0 {
88
+ compatible = "regulator-fixed";
89
+ regulator-name = "MAIN_DC";
90
+ regulator-always-on;
91
+ };
9492
95
- reg_hdmi_en: regulator@2 {
96
- compatible = "regulator-fixed";
97
- reg = <2>;
98
- regulator-name = "hdmi-en";
99
- };
93
+ mmc_reg: regulator-1 {
94
+ compatible = "regulator-fixed";
95
+ regulator-name = "VDD_MMC";
96
+ regulator-min-microvolt = <2800000>;
97
+ regulator-max-microvolt = <2800000>;
98
+ regulator-always-on;
99
+ };
100
+
101
+ reg_hdmi_en: regulator-2 {
102
+ compatible = "regulator-fixed";
103
+ regulator-name = "hdmi-en";
104
+ regulator-always-on;
105
+ };
106
+
107
+ vcc_1v2_reg: regulator-3 {
108
+ compatible = "regulator-fixed";
109
+ regulator-name = "VCC_1V2";
110
+ regulator-min-microvolt = <1200000>;
111
+ regulator-max-microvolt = <1200000>;
112
+ regulator-always-on;
113
+ };
114
+
115
+ vcc_1v8_reg: regulator-4 {
116
+ compatible = "regulator-fixed";
117
+ regulator-name = "VCC_1V8";
118
+ regulator-min-microvolt = <1800000>;
119
+ regulator-max-microvolt = <1800000>;
120
+ regulator-always-on;
121
+ };
122
+
123
+ vcc_3v3_reg: regulator-5 {
124
+ compatible = "regulator-fixed";
125
+ regulator-name = "VCC_3V3";
126
+ regulator-min-microvolt = <3300000>;
127
+ regulator-max-microvolt = <3300000>;
128
+ regulator-always-on;
129
+ };
130
+
131
+ sound {
132
+ compatible = "samsung,arndale-wm1811";
133
+ samsung,audio-cpu = <&i2s0>;
134
+ samsung,audio-codec = <&wm1811>;
100135 };
101136
102137 fixed-rate-clocks {
....@@ -111,35 +146,46 @@
111146 compatible = "smsc,usb3503a";
112147
113148 reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
114
- connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
149
+ connect-gpios = <&gpd1 7 GPIO_ACTIVE_HIGH>;
115150 };
151
+};
152
+
153
+&clock {
154
+ assigned-clocks = <&clock CLK_FOUT_EPLL>;
155
+ assigned-clock-rates = <49152000>;
156
+};
157
+
158
+&clock_audss {
159
+ assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
160
+ assigned-clock-parents = <&clock CLK_FOUT_EPLL>;
116161 };
117162
118163 &cpu0 {
119164 cpu0-supply = <&buck2_reg>;
120165 };
121166
122
-&dp {
167
+&dsi_0 {
168
+ vddcore-supply = <&ldo8_reg>;
169
+ vddio-supply = <&ldo10_reg>;
170
+ samsung,pll-clock-frequency = <24000000>;
171
+ samsung,burst-clock-frequency = <320000000>;
172
+ samsung,esc-clock-frequency = <10000000>;
123173 status = "okay";
124
- samsung,color-space = <0>;
125
- samsung,color-depth = <1>;
126
- samsung,link-rate = <0x0a>;
127
- samsung,lane-count = <4>;
128174
129
- display-timings {
130
- native-mode = <&timing0>;
131
-
132
- timing0: timing {
133
- /* 2560x1600 DP panel */
134
- clock-frequency = <50000>;
135
- hactive = <2560>;
136
- vactive = <1600>;
137
- hfront-porch = <48>;
138
- hback-porch = <80>;
139
- hsync-len = <32>;
140
- vback-porch = <16>;
141
- vfront-porch = <8>;
142
- vsync-len = <6>;
175
+ bridge@0 {
176
+ reg = <0>;
177
+ compatible = "toshiba,tc358764";
178
+ vddc-supply = <&vcc_1v2_reg>;
179
+ vddio-supply = <&vcc_1v8_reg>;
180
+ vddlvds-supply = <&vcc_3v3_reg>;
181
+ reset-gpios = <&gpd1 6 GPIO_ACTIVE_LOW>;
182
+ #address-cells = <1>;
183
+ #size-cells = <0>;
184
+ port@1 {
185
+ reg = <1>;
186
+ bridge_out_ep: endpoint {
187
+ remote-endpoint = <&panel_ep>;
188
+ };
143189 };
144190 };
145191 };
....@@ -197,11 +243,17 @@
197243 s5m8767,pmic-buck3-dvs-voltage = <1100000>;
198244 s5m8767,pmic-buck4-dvs-voltage = <1200000>;
199245 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
200
- <&gpd1 1 GPIO_ACTIVE_HIGH>,
201
- <&gpd1 2 GPIO_ACTIVE_HIGH>;
246
+ <&gpd1 1 GPIO_ACTIVE_HIGH>,
247
+ <&gpd1 2 GPIO_ACTIVE_HIGH>;
202248 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
203
- <&gpx2 4 GPIO_ACTIVE_HIGH>,
204
- <&gpx2 5 GPIO_ACTIVE_HIGH>;
249
+ <&gpx2 4 GPIO_ACTIVE_HIGH>,
250
+ <&gpx2 5 GPIO_ACTIVE_HIGH>;
251
+
252
+ s5m8767_osc: clocks {
253
+ compatible = "samsung,s5m8767-clk";
254
+ #clock-cells = <1>;
255
+ clock-output-names = "s5m8767_ap", "unused1", "unused2";
256
+ };
205257
206258 regulators {
207259 ldo1_reg: LDO1 {
....@@ -390,7 +442,7 @@
390442 };
391443
392444 buck1_reg: BUCK1 {
393
- regulator-name = "vdd_mif";
445
+ regulator-name = "VDD_MIF";
394446 regulator-min-microvolt = <950000>;
395447 regulator-max-microvolt = <1200000>;
396448 regulator-always-on;
....@@ -399,7 +451,7 @@
399451 };
400452
401453 buck2_reg: BUCK2 {
402
- regulator-name = "vdd_arm";
454
+ regulator-name = "VDD_ARM";
403455 regulator-min-microvolt = <912500>;
404456 regulator-max-microvolt = <1300000>;
405457 regulator-always-on;
....@@ -408,7 +460,7 @@
408460 };
409461
410462 buck3_reg: BUCK3 {
411
- regulator-name = "vdd_int";
463
+ regulator-name = "VDD_INT";
412464 regulator-min-microvolt = <900000>;
413465 regulator-max-microvolt = <1200000>;
414466 regulator-always-on;
....@@ -417,9 +469,9 @@
417469 };
418470
419471 buck4_reg: BUCK4 {
420
- regulator-name = "vdd_g3d";
421
- regulator-min-microvolt = <1000000>;
422
- regulator-max-microvolt = <1000000>;
472
+ regulator-name = "VDD_G3D";
473
+ regulator-min-microvolt = <850000>;
474
+ regulator-max-microvolt = <1300000>;
423475 regulator-always-on;
424476 regulator-boot-on;
425477 op_mode = <1>;
....@@ -459,9 +511,11 @@
459511 &i2c_3 {
460512 status = "okay";
461513
462
- wm1811a@1a {
514
+ wm1811: codec@1a {
463515 compatible = "wlf,wm1811";
464516 reg = <0x1a>;
517
+ clocks = <&i2s0 CLK_I2S_CDCLK>;
518
+ clock-names = "MCLK1";
465519
466520 AVDD2-supply = <&main_dc_reg>;
467521 CPVDD-supply = <&main_dc_reg>;
....@@ -488,15 +542,20 @@
488542 status = "okay";
489543 samsung,i2c-sda-delay = <100>;
490544 samsung,i2c-max-bus-freq = <40000>;
491
- samsung,i2c-slave-addr = <0x38>;
492
-
493
- sata_phy_i2c:sata-phy@38 {
494
- compatible = "samsung,exynos-sataphy-i2c";
495
- reg = <0x38>;
496
- };
497545 };
498546
499547 &i2s0 {
548
+ assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
549
+ assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
550
+ status = "okay";
551
+};
552
+
553
+&i2s0_bus {
554
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>;
555
+};
556
+
557
+&mali {
558
+ mali-supply = <&buck4_reg>;
500559 status = "okay";
501560 };
502561
....@@ -540,6 +599,8 @@
540599 };
541600
542601 &rtc {
602
+ clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
603
+ clock-names = "rtc", "rtc_src";
543604 status = "okay";
544605 };
545606
....@@ -552,19 +613,22 @@
552613 samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
553614 };
554615
616
+&sata_phy_i2c {
617
+ status = "okay";
618
+};
619
+
555620 &soc {
556621 /*
557622 * For unknown reasons HDMI-DDC does not work with Exynos I2C
558623 * controllers. Lets use software I2C over GPIO pins as a workaround.
559624 */
560
- i2c_ddc: i2c-gpio {
625
+ i2c_ddc: i2c-10 {
561626 pinctrl-names = "default";
562627 pinctrl-0 = <&i2c2_gpio_bus>;
563628 status = "okay";
564629 compatible = "i2c-gpio";
565
- gpios = <&gpa0 6 0 /* sda */
566
- &gpa0 7 0 /* scl */
567
- >;
630
+ sda-gpios = <&gpa0 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
631
+ scl-gpios = <&gpa0 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
568632 i2c-gpio,delay-us = <2>;
569633 #address-cells = <1>;
570634 #size-cells = <0>;