2 * Copyright (C) 2016, Lothar Waßmann <LW@KARO-electronics.de>
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
44 #include <dt-bindings/gpio/gpio.h>
45 #include "msm8916.dtsi"
46 #include "pm8916.dtsi"
47 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
48 #include "msm8916-mdss.dtsi"
51 model = "Ka-Ro electronics GmbH TXSD-410E (Qualcomm Technologies, Inc. APQ 8016)";
52 compatible = "karo,txsd-410e", "qcom,apq8016-sbc", "qcom,apq8016", "qcom,sbc";
58 serial0 = &blsp1_uart2;
59 serial1 = &blsp1_uart1;
68 stdout-path = "serial0";
71 lvds_backlight: lvds-backlight {
72 compatible = "gpio-backlight";
73 pinctrl-names = "default";
74 pinctrl-0 = <&backlight_pins>;
75 backlight-gpios = <&msmgpio 98 GPIO_ACTIVE_LOW>;
78 lvds_display: lvds-panel {
79 compatible = "hannstar,hsd100pxn1", "panel-simple";
80 power-supply = <&pm8916_l6>;
81 pinctrl-names = "default";
82 pinctrl-0 = <&msmgpio_lvds_panel>;
83 enable-gpios = <&msmgpio 25 GPIO_ACTIVE_LOW>;
84 backlight = <&lvds_backlight>;
88 blsp_i2c5: i2c@78b9000 {
89 compatible = "qcom,i2c-qup-v2.2.1";
90 reg = <0x078b9000 0x1000>;
91 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
92 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
93 <&gcc GCC_BLSP1_AHB_CLK>;
94 clock-names = "core", "iface";
95 pinctrl-names = "default", "sleep";
96 pinctrl-0 = <&i2c5_default_pins>;
97 pinctrl-1 = <&i2c5_sleep_pins>;
104 compatible = "i2c-gpio";
105 #address-cells = <1>;
107 pinctrl-names = "default";
108 pinctrl-0 = <&i2c0_pins>;
109 gpios = <&msmgpio 53 GPIO_ACTIVE_HIGH>, /* SDA */
110 <&msmgpio 54 GPIO_ACTIVE_HIGH>; /* CLK */
114 compatible = "gpio-leds";
115 pinctrl-names = "default";
116 pinctrl-0 = <&msmgpio_leds>;
119 label = "txsd-410e:green:user1";
120 gpios = <&msmgpio 71 GPIO_ACTIVE_HIGH>;
121 linux,default-trigger = "heartbeat";
122 default-state = "off";
134 remote-endpoint = <&dsi83_out>;
140 compatible = "linux,extcon-usb-gpio";
141 interrupt-parent = <&msmgpio>;
142 id-gpio = <&msmgpio 61 GPIO_ACTIVE_HIGH>;
143 pinctrl-names = "default";
144 pinctrl-0 = <&usb_id_pins>;
149 /* BAM-DMA hangs the system, so keep it disabled for now */
155 cs-gpios = <&msmgpio 10 GPIO_ACTIVE_LOW>,
156 <&msmgpio 120 GPIO_ACTIVE_LOW>,
157 <&msmgpio 69 GPIO_ACTIVE_LOW>;
160 /* due to disabled BAM DMA the driver would always return EPROBE_DEFER otherwise */
161 /delete-property/ dmas;
162 /delete-property/ dma-names;
165 compatible = "spidev";
167 spi-max-frequency = <54000000>;
171 compatible = "spidev";
173 spi-max-frequency = <54000000>;
177 compatible = "spidev";
179 spi-max-frequency = <54000000>;
185 function = "blsp_spi3";
186 pins = "gpio8", "gpio9", "gpio11";
191 pins = "gpio10", "gpio120", "gpio69";
195 pins = "gpio8", "gpio9", "gpio11";
196 drive-strength = <12>;
201 pins = "gpio10", "gpio120", "gpio69";
202 drive-strength = <2>;
211 pins = "gpio8", "gpio9", "gpio10", "gpio11", "gpio120", "gpio69";
215 pins = "gpio8", "gpio9", "gpio10", "gpio11", "gpio120", "gpio69";
216 drive-strength = <2>;
223 pinctrl-names = "default", "sleep";
224 pinctrl-0 = <&blsp1_uart1_default>;
225 pinctrl-1 = <&blsp1_uart1_sleep>;
231 pinctrl-names = "default", "sleep";
232 pinctrl-0 = <&blsp1_uart2_default>;
233 pinctrl-1 = <&blsp1_uart2_sleep>;
238 dsi83: sn65dsi83@2c {
239 compatible = "ti,sn65dsi83";
241 pinctrl-names = "default";
242 pinctrl-0 = <&msmgpio_dsi83 &dsi83_pins>;
243 vcc-supply = <&pm8916_l6>;
244 enable-gpios = <&msmgpio 55 GPIO_ACTIVE_HIGH>;
245 interrupts-extended = <&msmgpio 111 IRQ_TYPE_LEVEL_HIGH>;
246 data-equalization = <0>;
247 clock-equalization = <0>;
248 lvds-data-mapping = "spwg";
249 lvds-data-width = <18>;
250 panel = <&lvds_display>;
253 #address-cells = <1>;
260 remote-endpoint = <&mdss_dsi0_out>;
267 dsi83_out: endpoint {
268 remote-endpoint = <&lvds_con>;
274 native-mode = <&lvds_timing0>;
276 lvds_timing0: hsd100pxn1 {
277 clock-frequency = <65000000>;
287 pixelclk-active = <1>;
291 clock-frequency = <71000000>;
303 pixelclk-active = <1>;
307 /* same as nl12880bc20 */
308 clock-frequency = <71000000>;
320 pixelclk-active = <1>;
324 clock-frequency = <25200000>;
336 pixelclk-active = <0>;
340 clock-frequency = <25200000>;
352 pixelclk-active = <0>;
356 clock-frequency = <6413760>;
368 pixelclk-active = <0>;
372 clock-frequency = <9009000>;
384 pixelclk-active = <1>;
388 clock-frequency = <33264000>;
400 pixelclk-active = <0>;
403 ET0700 { /* same as ET0500 */
404 clock-frequency = <33264000>;
416 pixelclk-active = <0>;
420 clock-frequency = <6596040>;
432 pixelclk-active = <0>;
439 vdda-supply = <&pm8916_l2>;
440 vddio-supply = <&pm8916_l6>;
444 mdss_dsi0_out: endpoint {
445 remote-endpoint = <&dsi83_in>;
446 data-lanes = <0 1 2 3>;
452 msmgpio_dsi83: msmgpio-dsi83 {
466 msmgpio_leds: msmgpio-leds {
479 msmgpio_lvds_panel: msmgpio-lvds-panel {
492 backlight_pins: backlight-pins {
505 dsi83_pins: dsi83-pins {
518 usb_id_pins: usb-id-pins {
526 drive-strength = <8>;
540 drive-strength = <8>;
546 i2c0_pins: i2c0-pins {
548 pins = "gpio53", "gpio54";
553 pins = "gpio53", "gpio54";
554 drive-strength = <16>;
559 i2c5_default_pins: i2c5-default-pins {
561 pins = "gpio18", "gpio19";
562 function = "blsp_i2c5";
566 pins = "gpio18", "gpio19";
567 drive-strength = <16>;
572 i2c5_sleep_pins: i2c5-sleep-pins {
574 pins = "gpio18", "gpio19";
579 pins = "gpio18", "gpio19";
580 drive-strength = <2>;
587 pm8916_mpp_leds: pm8916-mpp-leds {
589 pins = "mpp2", "mpp3";
590 function = "digital";
591 power-source = <PM8916_GPIO_VPH>;
602 vmmc-supply = <&pm8916_l8>;
603 vqmmc-supply = <&pm8916_l5>;
605 pinctrl-names = "default", "sleep";
606 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
607 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
611 &smd_rpm_regulators {
612 vdd_l1_l2_l3-supply = <&pm8916_s3>;
613 vdd_l5-supply = <&pm8916_s3>;
614 vdd_l4_l5_l6-supply = <&pm8916_s4>;
615 vdd_l7-supply = <&pm8916_s4>;
618 regulator-min-microvolt = <375000>;
619 regulator-max-microvolt = <1562000>;
623 regulator-min-microvolt = <375000>;
624 regulator-max-microvolt = <1562000>;
628 regulator-min-microvolt = <1800000>;
629 regulator-max-microvolt = <1800000>;
636 regulator-min-microvolt = <375000>;
637 regulator-max-microvolt = <1525000>;
641 regulator-min-microvolt = <375000>;
642 regulator-max-microvolt = <1525000>;
646 regulator-min-microvolt = <375000>;
647 regulator-max-microvolt = <1525000>;
651 regulator-min-microvolt = <1750000>;
652 regulator-max-microvolt = <3337000>;
656 regulator-min-microvolt = <1750000>;
657 regulator-max-microvolt = <3337000>;
661 regulator-min-microvolt = <1750000>;
662 regulator-max-microvolt = <3337000>;
666 regulator-min-microvolt = <1750000>;
667 regulator-max-microvolt = <3337000>;
671 regulator-min-microvolt = <1750000>;
672 regulator-max-microvolt = <3337000>;
676 regulator-min-microvolt = <1750000>;
677 regulator-max-microvolt = <3337000>;
681 regulator-min-microvolt = <1750000>;
682 regulator-max-microvolt = <3337000>;
686 regulator-min-microvolt = <1750000>;
687 regulator-max-microvolt = <3337000>;
691 regulator-min-microvolt = <1750000>;
692 regulator-max-microvolt = <3337000>;
696 regulator-min-microvolt = <1750000>;
697 regulator-max-microvolt = <3337000>;
701 regulator-min-microvolt = <1750000>;
702 regulator-max-microvolt = <3337000>;
706 regulator-min-microvolt = <1750000>;
707 regulator-max-microvolt = <3337000>;
712 regulator-min-microvolt = <1750000>;
713 regulator-max-microvolt = <3337000>;
717 regulator-min-microvolt = <1750000>;
718 regulator-max-microvolt = <3337000>;
722 regulator-min-microvolt = <1750000>;
723 regulator-max-microvolt = <3337000>;
728 extcon = <&usb_id>, <&usb_id>;
737 compatible = "qcom,usb-8x16-phy";
738 //vddcx-supply = <&pm8916_s1>;
739 extcon = <&usb_id>, <&usb_id>;