~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0-only
  2 
  3 #include "msm8916-pm8916.dtsi"
  4 #include "msm8916-modem-qdsp6.dtsi"
  5 
  6 #include <dt-bindings/gpio/gpio.h>
  7 #include <dt-bindings/input/input.h>
  8 #include <dt-bindings/interrupt-controller/irq.h>
  9 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 10 #include <dt-bindings/sound/apq8016-lpass.h>
 11 
 12 / {
 13         aliases {
 14                 mmc0 = &sdhc_1; /* eMMC */
 15                 mmc1 = &sdhc_2; /* SD card */
 16                 serial0 = &blsp_uart2;
 17         };
 18 
 19         chosen {
 20                 stdout-path = "serial0";
 21         };
 22 
 23         reserved-memory {
 24                 /* Additional memory used by Samsung firmware modifications */
 25                 tz-apps@85500000 {
 26                         reg = <0x0 0x85500000 0x0 0xb00000>;
 27                         no-map;
 28                 };
 29         };
 30 
 31         battery: battery {
 32                 compatible = "simple-battery";
 33                 precharge-current-microamp = <450000>;
 34                 precharge-upper-limit-microvolt = <3500000>;
 35         };
 36 
 37         clk_pwm: pwm {
 38                 compatible = "clk-pwm";
 39                 #pwm-cells = <2>;
 40 
 41                 clocks = <&gcc GCC_GP2_CLK>;
 42 
 43                 pinctrl-names = "default";
 44                 pinctrl-0 = <&motor_pwm_default>;
 45                 status = "disabled";
 46         };
 47 
 48         gpio-keys {
 49                 compatible = "gpio-keys";
 50 
 51                 pinctrl-names = "default";
 52                 pinctrl-0 = <&gpio_keys_default>;
 53 
 54                 label = "GPIO Buttons";
 55 
 56                 button-volume-up {
 57                         label = "Volume Up";
 58                         gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
 59                         linux,code = <KEY_VOLUMEUP>;
 60                 };
 61 
 62                 button-home {
 63                         label = "Home";
 64                         gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
 65                         linux,code = <KEY_HOMEPAGE>;
 66                 };
 67         };
 68 
 69         gpio-hall-sensor {
 70                 compatible = "gpio-keys";
 71 
 72                 pinctrl-names = "default";
 73                 pinctrl-0 = <&gpio_hall_sensor_default>;
 74 
 75                 label = "GPIO Hall Effect Sensor";
 76 
 77                 event-hall-sensor {
 78                         label = "Hall Effect Sensor";
 79                         gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
 80                         linux,input-type = <EV_SW>;
 81                         linux,code = <SW_LID>;
 82                         linux,can-disable;
 83                 };
 84         };
 85 
 86         /*
 87          * NOTE: A5 connects GPIO 76 to a reglator powering the motor
 88          * driver IC but A3 connects the same signal to an ENABLE pin of
 89          * the driver.
 90          */
 91         reg_motor_vdd: regulator-motor-vdd {
 92                 compatible = "regulator-fixed";
 93                 regulator-name = "motor_vdd";
 94                 regulator-min-microvolt = <3000000>;
 95                 regulator-max-microvolt = <3000000>;
 96 
 97                 gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
 98                 enable-active-high;
 99 
100                 pinctrl-names = "default";
101                 pinctrl-0 = <&motor_en_default>;
102         };
103 
104         reg_vdd_tsp_a: regulator-vdd-tsp-a {
105                 compatible = "regulator-fixed";
106                 regulator-name = "vdd_tsp_a";
107                 regulator-min-microvolt = <3300000>;
108                 regulator-max-microvolt = <3300000>;
109 
110                 gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
111                 enable-active-high;
112 
113                 pinctrl-names = "default";
114                 pinctrl-0 = <&tsp_en_default>;
115         };
116 
117         i2c-muic {
118                 compatible = "i2c-gpio";
119                 sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
120                 scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
121 
122                 pinctrl-names = "default";
123                 pinctrl-0 = <&muic_i2c_default>;
124 
125                 #address-cells = <1>;
126                 #size-cells = <0>;
127 
128                 muic: extcon@25 {
129                         compatible = "siliconmitus,sm5502-muic";
130 
131                         reg = <0x25>;
132                         interrupt-parent = <&tlmm>;
133                         interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
134 
135                         pinctrl-names = "default";
136                         pinctrl-0 = <&muic_int_default>;
137 
138                         usb_con: connector {
139                                 compatible = "usb-b-connector";
140                                 label = "micro-USB";
141                                 type = "micro";
142                         };
143                 };
144         };
145 
146         i2c-tkey {
147                 compatible = "i2c-gpio";
148                 sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
149                 scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
150 
151                 pinctrl-names = "default";
152                 pinctrl-0 = <&tkey_i2c_default>;
153 
154                 #address-cells = <1>;
155                 #size-cells = <0>;
156 
157                 touchkey: touchkey@20 {
158                         /* Note: Actually an ABOV MCU that implements same interface */
159                         compatible = "coreriver,tc360-touchkey";
160                         reg = <0x20>;
161 
162                         interrupt-parent = <&tlmm>;
163                         interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
164 
165                         /* vcc/vdd-supply are board-specific */
166                         vddio-supply = <&pm8916_l6>;
167 
168                         linux,keycodes = <KEY_APPSELECT KEY_BACK>;
169 
170                         pinctrl-names = "default";
171                         pinctrl-0 = <&tkey_default>;
172                 };
173         };
174 
175         i2c-nfc {
176                 compatible = "i2c-gpio";
177                 sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
178                 scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
179 
180                 pinctrl-names = "default";
181                 pinctrl-0 = <&nfc_i2c_default>;
182 
183                 #address-cells = <1>;
184                 #size-cells = <0>;
185 
186                 nfc@27 {
187                         compatible = "samsung,s3fwrn5-i2c";
188                         reg = <0x27>;
189 
190                         interrupt-parent = <&tlmm>;
191                         interrupts = <21 IRQ_TYPE_EDGE_RISING>;
192 
193                         en-gpios = <&tlmm 20 GPIO_ACTIVE_LOW>;
194                         wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
195 
196                         clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
197 
198                         pinctrl-names = "default";
199                         pinctrl-0 = <&nfc_default &nfc_clk_req>;
200                 };
201         };
202 
203         vibrator: vibrator {
204                 compatible = "pwm-vibrator";
205 
206                 pwms = <&clk_pwm 0 100000>;
207                 pwm-names = "enable";
208 
209                 vcc-supply = <&reg_motor_vdd>;
210                 status = "disabled";
211         };
212 };
213 
214 &blsp_i2c1 {
215         status = "okay";
216 
217         speaker_codec: audio-codec@34 {
218                 compatible = "nxp,tfa9895";
219                 reg = <0x34>;
220                 vddd-supply = <&pm8916_l5>;
221                 sound-name-prefix = "Speaker";
222                 #sound-dai-cells = <0>;
223         };
224 };
225 
226 &blsp_i2c2 {
227         status = "okay";
228 
229         accelerometer: accelerometer@10 {
230                 compatible = "bosch,bmc150_accel";
231                 reg = <0x10>;
232                 interrupt-parent = <&tlmm>;
233                 interrupts = <115 IRQ_TYPE_EDGE_RISING>;
234 
235                 vdd-supply = <&pm8916_l17>;
236                 vddio-supply = <&pm8916_l5>;
237 
238                 pinctrl-names = "default";
239                 pinctrl-0 = <&accel_int_default>;
240         };
241 
242         magnetometer@12 {
243                 compatible = "bosch,bmc150_magn";
244                 reg = <0x12>;
245 
246                 vdd-supply = <&pm8916_l17>;
247                 vddio-supply = <&pm8916_l5>;
248         };
249 };
250 
251 &blsp_i2c4 {
252         status = "okay";
253 
254         fuel-gauge@35 {
255                 compatible = "richtek,rt5033-battery";
256                 reg = <0x35>;
257                 interrupt-parent = <&tlmm>;
258                 interrupts = <121 IRQ_TYPE_EDGE_BOTH>;
259 
260                 pinctrl-names = "default";
261                 pinctrl-0 = <&fg_alert_default>;
262 
263                 power-supplies = <&charger>;
264         };
265 };
266 
267 &blsp_i2c6 {
268         status = "okay";
269 
270         pmic@34 {
271                 compatible = "richtek,rt5033";
272                 reg = <0x34>;
273 
274                 interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
275 
276                 pinctrl-0 = <&pmic_int_default>;
277                 pinctrl-names = "default";
278 
279                 regulators {
280                         rt5033_reg_safe_ldo: SAFE_LDO {
281                                 regulator-min-microvolt = <4900000>;
282                                 regulator-max-microvolt = <4900000>;
283                                 regulator-always-on;
284                         };
285 
286                         /*
287                          * Needed for camera, but not used yet.
288                          * Define empty nodes to allow disabling the unused
289                          * regulators.
290                          */
291                         LDO {};
292                         BUCK {};
293                 };
294 
295                 charger: charger {
296                         compatible = "richtek,rt5033-charger";
297                         monitored-battery = <&battery>;
298                         richtek,usb-connector = <&usb_con>;
299                 };
300         };
301 };
302 
303 &blsp_uart2 {
304         status = "okay";
305 };
306 
307 &gpu {
308         status = "okay";
309 };
310 
311 /*
312  * For some reason the speaker amplifier is connected to the second SD line
313  * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
314  * device tree, otherwise audio will seemingly play fine on the wrong SD line
315  * but the speaker stays silent.
316  *
317  * When routing audio via QDSP6 (the default) the &lpass node is reserved and
318  * the definitions from &q6afedai are used. When the modem is disabled audio can
319  * be alternatively routed directly to the LPASS hardware with reduced latency.
320  * The definitions for &lpass are here for completeness to simplify changing the
321  * setup with minor changes to the DT (either manually or with DT overlays).
322  */
323 &lpass {
324         dai-link@3 {
325                 reg = <MI2S_QUATERNARY>;
326                 qcom,playback-sd-lines = <1>;
327         };
328 };
329 
330 &mdss {
331         status = "okay";
332 };
333 
334 &mdss_dsi0 {
335         pinctrl-names = "default", "sleep";
336         pinctrl-0 = <&mdss_default>;
337         pinctrl-1 = <&mdss_sleep>;
338 };
339 
340 &mpss_mem {
341         reg = <0x0 0x86800000 0x0 0x5400000>;
342 };
343 
344 &pm8916_resin {
345         status = "okay";
346         linux,code = <KEY_VOLUMEDOWN>;
347 };
348 
349 &pm8916_rpm_regulators {
350         pm8916_l17: l17 {
351                 regulator-min-microvolt = <2850000>;
352                 regulator-max-microvolt = <2850000>;
353         };
354 };
355 
356 &q6afedai {
357         dai@22 {
358                 reg = <QUATERNARY_MI2S_RX>;
359                 qcom,sd-lines = <1>;
360         };
361 };
362 
363 &sdhc_1 {
364         status = "okay";
365 };
366 
367 &sdhc_2 {
368         status = "okay";
369 
370         pinctrl-names = "default", "sleep";
371         pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
372         pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
373 
374         cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
375 };
376 
377 &sound {
378         model = "samsung-a2015";
379         audio-routing =
380                 "AMIC1", "MIC BIAS External1",
381                 "AMIC2", "MIC BIAS Internal2",
382                 "AMIC3", "MIC BIAS External1";
383 
384         pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
385         pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
386         pinctrl-names = "default", "sleep";
387 
388         sound_link_backend2: backend2-dai-link {
389                 link-name = "Quaternary MI2S";
390 
391                 cpu {
392                         sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
393                 };
394                 platform {
395                         sound-dai = <&q6routing>;
396                 };
397                 codec {
398                         sound-dai = <&speaker_codec>;
399                 };
400         };
401 };
402 
403 &usb {
404         status = "okay";
405         extcon = <&muic>, <&muic>;
406 };
407 
408 &usb_hs_phy {
409         extcon = <&muic>;
410 };
411 
412 &venus {
413         status = "okay";
414 };
415 
416 &venus_mem {
417         status = "okay";
418 };
419 
420 &tlmm {
421         accel_int_default: accel-int-default-state {
422                 pins = "gpio115";
423                 function = "gpio";
424 
425                 drive-strength = <2>;
426                 bias-disable;
427         };
428 
429         fg_alert_default: fg-alert-default-state {
430                 pins = "gpio121";
431                 function = "gpio";
432 
433                 drive-strength = <2>;
434                 bias-disable;
435         };
436 
437         gpio_keys_default: gpio-keys-default-state {
438                 pins = "gpio107", "gpio109";
439                 function = "gpio";
440 
441                 drive-strength = <2>;
442                 bias-pull-up;
443         };
444 
445         gpio_hall_sensor_default: gpio-hall-sensor-default-state {
446                 pins = "gpio52";
447                 function = "gpio";
448 
449                 drive-strength = <2>;
450                 bias-disable;
451         };
452 
453         mdss_default: mdss-default-state {
454                 pins = "gpio25";
455                 function = "gpio";
456 
457                 drive-strength = <8>;
458                 bias-disable;
459         };
460         mdss_sleep: mdss-sleep-state {
461                 pins = "gpio25";
462                 function = "gpio";
463 
464                 drive-strength = <2>;
465                 bias-pull-down;
466         };
467 
468         motor_en_default: motor-en-default-state {
469                 pins = "gpio76";
470                 function = "gpio";
471 
472                 drive-strength = <2>;
473                 bias-disable;
474         };
475 
476         motor_pwm_default: motor-pwm-default-state {
477                 pins = "gpio50";
478                 function = "gcc_gp2_clk_a";
479         };
480 
481         muic_i2c_default: muic-i2c-default-state {
482                 pins = "gpio105", "gpio106";
483                 function = "gpio";
484 
485                 drive-strength = <2>;
486                 bias-disable;
487         };
488 
489         muic_int_default: muic-int-default-state {
490                 pins = "gpio12";
491                 function = "gpio";
492 
493                 drive-strength = <2>;
494                 bias-disable;
495         };
496 
497         nfc_default: nfc-default-state {
498                 nfc-pins {
499                         pins = "gpio20", "gpio49";
500                         function = "gpio";
501 
502                         drive-strength = <2>;
503                         bias-disable;
504                 };
505 
506                 irq-pins {
507                         pins = "gpio21";
508                         function = "gpio";
509 
510                         drive-strength = <2>;
511                         bias-pull-down;
512                 };
513         };
514 
515         nfc_i2c_default: nfc-i2c-default-state {
516                 pins = "gpio0", "gpio1";
517                 function = "gpio";
518 
519                 drive-strength = <2>;
520                 bias-disable;
521         };
522 
523         pmic_int_default: pmic-int-default-state {
524                 pins = "gpio62";
525                 function = "gpio";
526                 drive-strength = <2>;
527                 bias-disable;
528         };
529 
530         sdc2_cd_default: sdc2-cd-default-state {
531                 pins = "gpio38";
532                 function = "gpio";
533                 drive-strength = <2>;
534                 bias-disable;
535         };
536 
537         tkey_default: tkey-default-state {
538                 pins = "gpio98";
539                 function = "gpio";
540 
541                 drive-strength = <2>;
542                 bias-disable;
543         };
544 
545         tkey_i2c_default: tkey-i2c-default-state {
546                 pins = "gpio16", "gpio17";
547                 function = "gpio";
548 
549                 drive-strength = <2>;
550                 bias-disable;
551         };
552 
553         tsp_en_default: tsp-en-default-state {
554                 pins = "gpio73";
555                 function = "gpio";
556 
557                 drive-strength = <2>;
558                 bias-disable;
559         };
560 
561         ts_int_default: ts-int-default-state {
562                 pins = "gpio13";
563                 function = "gpio";
564 
565                 drive-strength = <2>;
566                 bias-disable;
567         };
568 };
569 
570 &pm8916_gpios {
571         nfc_clk_req: nfc-clk-req-state {
572                 pins = "gpio2";
573                 function = "func1";
574 
575                 input-enable;
576                 bias-disable;
577                 power-source = <PM8916_GPIO_L2>;
578         };
579 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php