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

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/qcom/apq8016-schneider-hmibsc.dts

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  * Copyright (c) 2015, The Linux Foundation. All rights reserved.
  4  * Copyright (c) 2024, Linaro Ltd.
  5  */
  6 
  7 /dts-v1/;
  8 
  9 #include "msm8916-pm8916.dtsi"
 10 #include <dt-bindings/gpio/gpio.h>
 11 #include <dt-bindings/input/input.h>
 12 #include <dt-bindings/leds/common.h>
 13 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 14 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 15 #include <dt-bindings/sound/apq8016-lpass.h>
 16 
 17 / {
 18         model = "Schneider Electric HMIBSC Board";
 19         compatible = "schneider,apq8016-hmibsc", "qcom,apq8016";
 20 
 21         aliases {
 22                 i2c1 = &blsp_i2c6;
 23                 i2c3 = &blsp_i2c4;
 24                 i2c4 = &blsp_i2c3;
 25                 mmc0 = &sdhc_1; /* eMMC */
 26                 mmc1 = &sdhc_2; /* SD card */
 27                 serial0 = &blsp_uart1;
 28                 serial1 = &blsp_uart2;
 29                 spi0 = &blsp_spi5;
 30                 usid0 = &pm8916_0;
 31         };
 32 
 33         chosen {
 34                 stdout-path = "serial0";
 35         };
 36 
 37         hdmi-out {
 38                 compatible = "hdmi-connector";
 39                 type = "a";
 40 
 41                 port {
 42                         hdmi_con: endpoint {
 43                                 remote-endpoint = <&adv7533_out>;
 44                         };
 45                 };
 46         };
 47 
 48         gpio-keys {
 49                 compatible = "gpio-keys";
 50                 autorepeat;
 51                 pinctrl-0 = <&msm_key_volp_n_default>;
 52                 pinctrl-names = "default";
 53 
 54                 button {
 55                         label = "Volume Up";
 56                         linux,code = <KEY_VOLUMEUP>;
 57                         gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
 58                 };
 59         };
 60 
 61         leds {
 62                 compatible = "gpio-leds";
 63                 pinctrl-0 = <&pm8916_mpps_leds>;
 64                 pinctrl-names = "default";
 65 
 66                 led-1 {
 67                         function = LED_FUNCTION_WLAN;
 68                         color = <LED_COLOR_ID_YELLOW>;
 69                         gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
 70                         linux,default-trigger = "phy0tx";
 71                         default-state = "off";
 72                 };
 73 
 74                 led-2 {
 75                         function = LED_FUNCTION_BLUETOOTH;
 76                         color = <LED_COLOR_ID_BLUE>;
 77                         gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
 78                         linux,default-trigger = "bluetooth-power";
 79                         default-state = "off";
 80                 };
 81         };
 82 
 83         memory@80000000 {
 84                 reg = <0 0x80000000 0 0x40000000>;
 85         };
 86 
 87         reserved-memory {
 88                 ramoops@bff00000 {
 89                         compatible = "ramoops";
 90                         reg = <0x0 0xbff00000 0x0 0x100000>;
 91                         record-size = <0x20000>;
 92                         console-size = <0x20000>;
 93                         ftrace-size = <0x20000>;
 94                         ecc-size = <16>;
 95                 };
 96         };
 97 
 98         usb-hub {
 99                 compatible = "smsc,usb3503";
100                 reset-gpios = <&pm8916_gpios 1 GPIO_ACTIVE_LOW>;
101                 initial-mode = <1>;
102         };
103 
104         usb_id: usb-id {
105                 compatible = "linux,extcon-usb-gpio";
106                 id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
107                 pinctrl-0 = <&usb_id_default>;
108                 pinctrl-names = "default";
109         };
110 };
111 
112 &blsp_i2c3 {
113         status = "okay";
114 
115         eeprom@50 {
116                 compatible = "atmel,24c32";
117                 reg = <0x50>;
118         };
119 };
120 
121 &blsp_i2c4 {
122         status = "okay";
123 
124         adv_bridge: bridge@39 {
125                 compatible = "adi,adv7533";
126                 reg = <0x39>;
127                 interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
128 
129                 adi,dsi-lanes = <4>;
130                 clocks = <&rpmcc RPM_SMD_BB_CLK2>;
131                 clock-names = "cec";
132                 pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
133 
134                 avdd-supply = <&pm8916_l6>;
135                 a2vdd-supply = <&pm8916_l6>;
136                 dvdd-supply = <&pm8916_l6>;
137                 pvdd-supply = <&pm8916_l6>;
138                 v1p2-supply = <&pm8916_l6>;
139                 v3p3-supply = <&pm8916_l17>;
140 
141                 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
142                 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
143                 pinctrl-names = "default","sleep";
144                 #sound-dai-cells = <0>;
145 
146                 ports {
147                         #address-cells = <1>;
148                         #size-cells = <0>;
149 
150                         port@0 {
151                                 reg = <0>;
152                                 adv7533_in: endpoint {
153                                         remote-endpoint = <&mdss_dsi0_out>;
154                                 };
155                         };
156 
157                         port@1 {
158                                 reg = <1>;
159                                 adv7533_out: endpoint {
160                                         remote-endpoint = <&hdmi_con>;
161                                 };
162                         };
163                 };
164         };
165 };
166 
167 &blsp_i2c6 {
168         status = "okay";
169 
170         rtc@30 {
171                 compatible = "sii,s35390a";
172                 reg = <0x30>;
173         };
174 
175         eeprom@50 {
176                 compatible = "atmel,24c256";
177                 reg = <0x50>;
178         };
179 };
180 
181 &blsp_spi5 {
182         cs-gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
183         status = "okay";
184 
185         tpm@0 {
186                 compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
187                 reg = <0>;
188                 spi-max-frequency = <500000>;
189         };
190 };
191 
192 &blsp_uart1 {
193         label = "UART0";
194         status = "okay";
195 };
196 
197 &blsp_uart2 {
198         label = "UART1";
199         status = "okay";
200 };
201 
202 &lpass {
203         status = "okay";
204 };
205 
206 &mdss {
207         status = "okay";
208 };
209 
210 &mdss_dsi0_out {
211         data-lanes = <0 1 2 3>;
212         remote-endpoint = <&adv7533_in>;
213 };
214 
215 &pm8916_codec {
216         qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
217         qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
218         status = "okay";
219 };
220 
221 &pm8916_gpios {
222         gpio-line-names =
223                 "USB_HUB_RESET_N_PM",
224                 "USB_SW_SEL_PM",
225                 "NC",
226                 "NC";
227 
228         usb_hub_reset_pm: usb-hub-reset-pm-state {
229                 pins = "gpio1";
230                 function = PMIC_GPIO_FUNC_NORMAL;
231                 input-disable;
232                 output-high;
233         };
234 
235         usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
236                 pins = "gpio1";
237                 function = PMIC_GPIO_FUNC_NORMAL;
238                 input-disable;
239                 output-low;
240         };
241 
242         usb_sw_sel_pm: usb-sw-sel-pm-state {
243                 pins = "gpio2";
244                 function = PMIC_GPIO_FUNC_NORMAL;
245                 power-source = <PM8916_GPIO_VPH>;
246                 input-disable;
247                 output-high;
248         };
249 
250         usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
251                 pins = "gpio2";
252                 function = PMIC_GPIO_FUNC_NORMAL;
253                 power-source = <PM8916_GPIO_VPH>;
254                 input-disable;
255                 output-low;
256         };
257 };
258 
259 &pm8916_mpps {
260         gpio-line-names =
261                 "NC",
262                 "WLAN_LED_CTRL",
263                 "BT_LED_CTRL",
264                 "NC";
265 
266         pm8916_mpps_leds: pm8916-mpps-state {
267                 pins = "mpp2", "mpp3";
268                 function = "digital";
269                 output-low;
270         };
271 };
272 
273 &pm8916_resin {
274         linux,code = <KEY_POWER>;
275         status = "okay";
276 };
277 
278 &pm8916_rpm_regulators {
279         pm8916_l17: l17 {
280                 regulator-min-microvolt = <3300000>;
281                 regulator-max-microvolt = <3300000>;
282         };
283 };
284 
285 &sdhc_1 {
286         status = "okay";
287 };
288 
289 &sdhc_2 {
290         pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
291         pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
292         pinctrl-names = "default", "sleep";
293         cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
294         status = "okay";
295 };
296 
297 &sound {
298         pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
299         pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
300         pinctrl-names = "default", "sleep";
301         model = "HMIBSC";
302         audio-routing =
303                 "AMIC2", "MIC BIAS Internal2",
304                 "AMIC3", "MIC BIAS External1";
305         status = "okay";
306 
307         quaternary-dai-link {
308                 link-name = "ADV7533";
309                 cpu {
310                         sound-dai = <&lpass MI2S_QUATERNARY>;
311                 };
312                 codec {
313                         sound-dai = <&adv_bridge 0>;
314                 };
315         };
316 
317         primary-dai-link {
318                 link-name = "WCD";
319                 cpu {
320                         sound-dai = <&lpass MI2S_PRIMARY>;
321                 };
322                 codec {
323                         sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
324                 };
325         };
326 
327         tertiary-dai-link {
328                 link-name = "WCD-Capture";
329                 cpu {
330                         sound-dai = <&lpass MI2S_TERTIARY>;
331                 };
332                 codec {
333                         sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
334                 };
335         };
336 };
337 
338 &tlmm {
339         pinctrl-0 = <&uart1_mux0_rs232_high &uart1_mux1_rs232_low>;
340         pinctrl-names = "default";
341 
342         adv7533_int_active: adv533-int-active-state {
343                 pins = "gpio31";
344                 function = "gpio";
345                 drive-strength = <16>;
346                 bias-disable;
347         };
348 
349         adv7533_int_suspend: adv7533-int-suspend-state {
350                 pins = "gpio31";
351                 function = "gpio";
352                 drive-strength = <2>;
353                 bias-disable;
354         };
355 
356         adv7533_switch_active: adv7533-switch-active-state {
357                 pins = "gpio32";
358                 function = "gpio";
359                 drive-strength = <16>;
360                 bias-disable;
361         };
362 
363         adv7533_switch_suspend: adv7533-switch-suspend-state {
364                 pins = "gpio32";
365                 function = "gpio";
366                 drive-strength = <2>;
367                 bias-disable;
368         };
369 
370         msm_key_volp_n_default: msm-key-volp-n-default-state {
371                 pins = "gpio107";
372                 function = "gpio";
373                 drive-strength = <8>;
374                 bias-pull-up;
375         };
376 
377         sdc2_cd_default: sdc2-cd-default-state {
378                 pins = "gpio38";
379                 function = "gpio";
380                 drive-strength = <2>;
381                 bias-disable;
382         };
383 
384         /*
385          * UART1 being the debug console supports various modes of
386          * operation (RS-232/485/422) controlled via GPIOs configured
387          * mux as follows:
388          *
389          *   gpio100    gpio99    UART mode
390          *   0          0         loopback
391          *   0          1         RS-232
392          *   1          0         RS-485
393          *   1          1         RS-422
394          *
395          * The default mode configured here is RS-232 mode.
396          */
397         uart1_mux0_rs232_high: uart1-mux0-rs232-state {
398                 bootph-all;
399                 pins = "gpio99";
400                 function = "gpio";
401                 drive-strength = <16>;
402                 bias-disable;
403                 output-high;
404         };
405 
406         uart1_mux1_rs232_low: uart1-mux1-rs232-state {
407                 bootph-all;
408                 pins = "gpio100";
409                 function = "gpio";
410                 drive-strength = <16>;
411                 bias-disable;
412                 output-low;
413         };
414 
415         usb_id_default: usb-id-default-state {
416                 pins = "gpio110";
417                 function = "gpio";
418                 drive-strength = <8>;
419                 bias-pull-up;
420         };
421 };
422 
423 &usb {
424         extcon = <&usb_id>, <&usb_id>;
425         pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
426         pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
427         pinctrl-names = "default", "device";
428         status = "okay";
429 };
430 
431 &usb_hs_phy {
432         extcon = <&usb_id>;
433 };
434 
435 &wcnss {
436         firmware-name = "qcom/apq8016/wcnss.mbn";
437         status = "okay";
438 };
439 
440 &wcnss_ctrl {
441         firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
442 };
443 
444 &wcnss_iris {
445         compatible = "qcom,wcn3620";
446 };
447 
448 &wcnss_mem {
449         status = "okay";
450 };
451 
452 /* PINCTRL - additions to nodes defined in msm8916.dtsi */
453 
454 /*
455  * 2mA drive strength is not enough when connecting multiple
456  * I2C devices with different pull up resistors.
457  */
458 &blsp_i2c4_default {
459         drive-strength = <16>;
460 };
461 
462 &blsp_i2c6_default {
463         drive-strength = <16>;
464 };
465 
466 &blsp_uart1_default {
467         bootph-all;
468 };
469 
470 /* Enable CoreSight */
471 &cti0 { status = "okay"; };
472 &cti1 { status = "okay"; };
473 &cti12 { status = "okay"; };
474 &cti13 { status = "okay"; };
475 &cti14 { status = "okay"; };
476 &cti15 { status = "okay"; };
477 &debug0 { status = "okay"; };
478 &debug1 { status = "okay"; };
479 &debug2 { status = "okay"; };
480 &debug3 { status = "okay"; };
481 &etf { status = "okay"; };
482 &etm0 { status = "okay"; };
483 &etm1 { status = "okay"; };
484 &etm2 { status = "okay"; };
485 &etm3 { status = "okay"; };
486 &etr { status = "okay"; };
487 &funnel0 { status = "okay"; };
488 &funnel1 { status = "okay"; };
489 &replicator { status = "okay"; };
490 &stm { status = "okay"; };
491 &tpiu { status = "okay"; };

~ [ 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