sun50i-a64-pinebook.dts revision 1.17
11.17Sjmcneill/* $NetBSD: sun50i-a64-pinebook.dts,v 1.17 2019/11/24 02:06:16 jmcneill Exp $ */
21.1Sjmcneill
31.1Sjmcneill/*-
41.14Sjmcneill * Copyright (c) 2017-2019 Jared McNeill <jmcneill@invisible.ca>
51.1Sjmcneill * All rights reserved.
61.1Sjmcneill *
71.1Sjmcneill * Redistribution and use in source and binary forms, with or without
81.1Sjmcneill * modification, are permitted provided that the following conditions
91.1Sjmcneill * are met:
101.1Sjmcneill * 1. Redistributions of source code must retain the above copyright
111.1Sjmcneill *    notice, this list of conditions and the following disclaimer.
121.1Sjmcneill * 2. Redistributions in binary form must reproduce the above copyright
131.1Sjmcneill *    notice, this list of conditions and the following disclaimer in the
141.1Sjmcneill *    documentation and/or other materials provided with the distribution.
151.1Sjmcneill *
161.1Sjmcneill * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
171.1Sjmcneill * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
181.1Sjmcneill * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
191.1Sjmcneill * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
201.1Sjmcneill * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
211.1Sjmcneill * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
221.1Sjmcneill * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
231.1Sjmcneill * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
241.1Sjmcneill * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
251.1Sjmcneill * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
261.1Sjmcneill * SUCH DAMAGE.
271.1Sjmcneill */
281.1Sjmcneill
291.14Sjmcneill#include "../../../external/gpl2/dts/dist/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts"
301.1Sjmcneill#include "sun50i-a64.dtsi"
311.1Sjmcneill
321.5Sjmcneill#include <dt-bindings/gpio/gpio.h>
331.4Sjmcneill#include <dt-bindings/input/linux-event-codes.h>
341.5Sjmcneill#include <dt-bindings/interrupt-controller/irq.h>
351.8Sjmcneill#include <dt-bindings/pwm/pwm.h>
361.4Sjmcneill
371.2Sjmcneill/ {
381.3Sjmcneill	chosen {
391.3Sjmcneill		framebuffer@0 {
401.3Sjmcneill			allwinner,pipeline = "mixer0-lcd0";
411.3Sjmcneill		};
421.3Sjmcneill	};
431.2Sjmcneill
441.4Sjmcneill	gpio_keys {
451.4Sjmcneill		lid_switch {
461.14Sjmcneill			/*
471.14Sjmcneill			 * This is listed as PL12 in 4.20.3 sources, but
481.14Sjmcneill			 * we have used PH10 all along.
491.14Sjmcneill			 */
501.4Sjmcneill			gpios = <&pio 7 10 GPIO_ACTIVE_LOW>;	/* PH10 */
511.4Sjmcneill		};
521.4Sjmcneill	};
531.5Sjmcneill
541.10Sjmcneill	sound_spdif {
551.10Sjmcneill		status = "disabled";
561.10Sjmcneill	};
571.17Sjmcneill
581.17Sjmcneill	hdmi-connector {
591.17Sjmcneill		compatible = "hdmi-connector";
601.17Sjmcneill		type = "c";
611.17Sjmcneill
621.17Sjmcneill		port {
631.17Sjmcneill			hdmi_con_in: endpoint {
641.17Sjmcneill				remote-endpoint = <&hdmi_out_con>;
651.17Sjmcneill			};
661.17Sjmcneill		};
671.17Sjmcneill	};
681.10Sjmcneill};
691.10Sjmcneill
701.11Sjmcneill&cpu0 {
711.11Sjmcneill	cpu-supply = <&reg_dcdc2>;
721.11Sjmcneill	operating-points = <
731.11Sjmcneill		/* kHz    uV */
741.11Sjmcneill		1152000 1300000
751.11Sjmcneill		1104000 1260000
761.11Sjmcneill		1008000 1200000
771.11Sjmcneill		816000  1080000
781.11Sjmcneill		648000	1040000
791.11Sjmcneill		408000	1000000
801.11Sjmcneill		>;
811.11Sjmcneill};
821.11Sjmcneill
831.10Sjmcneill&spdif_out {
841.10Sjmcneill	status = "disabled";
851.5Sjmcneill};
861.5Sjmcneill
871.13Smrg&uart1 {
881.13Smrg	pinctrl-names = "default";
891.13Smrg	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
901.13Smrg	status = "okay";
911.13Smrg	bluetooth {
921.13Smrg		compatible = "realtek,rtl8723cs-bt";
931.13Smrg		reset-gpios = <&r_pio 0 4 GPIO_ACTIVE_LOW>; /* PL4 */
941.13Smrg		device-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
951.13Smrg		host-wake-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
961.13Smrg		firmware-postfix = "pinebook";
971.13Smrg	};
981.13Smrg};
991.13Smrg
1001.9Sjmcneill&codec {
1011.9Sjmcneill	allwinner,pa-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>;	/* PH7 */
1021.9Sjmcneill	status = "okay";
1031.9Sjmcneill};
1041.9Sjmcneill
1051.15Sjmcneill&de {
1061.15Sjmcneill	status = "okay";
1071.15Sjmcneill};
1081.15Sjmcneill
1091.15Sjmcneill&mixer0 {
1101.15Sjmcneill	status = "okay";
1111.15Sjmcneill};
1121.15Sjmcneill
1131.15Sjmcneill&pio {
1141.15Sjmcneill	lcd_rgb666_pins: lcd-rgb666 {
1151.15Sjmcneill		pins = "PD0", "PD1", "PD2", "PD3", "PD4",
1161.15Sjmcneill		       "PD5", "PD6", "PD7", "PD8", "PD9",
1171.15Sjmcneill		       "PD10", "PD11", "PD12", "PD13",
1181.15Sjmcneill		       "PD14", "PD15", "PD16", "PD17",
1191.15Sjmcneill		       "PD18", "PD19", "PD20", "PD21";
1201.15Sjmcneill		function = "lcd0";
1211.15Sjmcneill	};
1221.15Sjmcneill};
1231.15Sjmcneill
1241.15Sjmcneill&tcon0 {
1251.15Sjmcneill	pinctrl-names = "default";
1261.15Sjmcneill	pinctrl-0 = <&lcd_rgb666_pins>;
1271.15Sjmcneill
1281.15Sjmcneill	status = "okay";
1291.15Sjmcneill};
1301.15Sjmcneill
1311.15Sjmcneill&tcon0_out {
1321.15Sjmcneill	tcon0_out_anx6345: endpoint@0 {
1331.15Sjmcneill		reg = <0>;
1341.15Sjmcneill		remote-endpoint = <&anx6345_in>;
1351.15Sjmcneill	};
1361.15Sjmcneill};
1371.15Sjmcneill
1381.15Sjmcneill&r_pio {
1391.15Sjmcneill	r_i2c_pins_a: i2c-a {
1401.15Sjmcneill		pins = "PL8", "PL9";
1411.15Sjmcneill		function = "s_i2c";
1421.15Sjmcneill	};
1431.15Sjmcneill};
1441.15Sjmcneill
1451.15Sjmcneill&r_i2c {
1461.15Sjmcneill	pinctrl-names = "default";
1471.15Sjmcneill	pinctrl-0 = <&r_i2c_pins_a>;
1481.15Sjmcneill	status = "okay";
1491.15Sjmcneill
1501.15Sjmcneill	anx6345: anx6345@38 {
1511.15Sjmcneill		compatible = "analogix,anx6345";
1521.15Sjmcneill		reg = <0x38>;
1531.15Sjmcneill		reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>;	/* PD24 */
1541.15Sjmcneill		panel-supply = <&reg_dc1sw>;
1551.15Sjmcneill		dvdd25-supply = <&reg_dldo2>;
1561.15Sjmcneill		dvdd12-supply = <&reg_fldo1>;
1571.15Sjmcneill
1581.15Sjmcneill		port {
1591.15Sjmcneill			anx6345_in: endpoint {
1601.15Sjmcneill				remote-endpoint = <&tcon0_out_anx6345>;
1611.15Sjmcneill			};
1621.15Sjmcneill		};
1631.15Sjmcneill	};
1641.15Sjmcneill};
1651.17Sjmcneill
1661.17Sjmcneill&reg_dldo1 {
1671.17Sjmcneill	regulator-min-microvolt = <3300000>;
1681.17Sjmcneill	regulator-max-microvolt = <3300000>;
1691.17Sjmcneill	regulator-name = "vcc-hdmi";
1701.17Sjmcneill};
1711.17Sjmcneill
1721.17Sjmcneill&hdmi {
1731.17Sjmcneill	hvcc-supply = <&reg_dldo1>;
1741.17Sjmcneill	status = "okay";
1751.17Sjmcneill};
1761.17Sjmcneill
1771.17Sjmcneill&hdmi_out {
1781.17Sjmcneill	hdmi_out_con: endpoint {
1791.17Sjmcneill		remote-endpoint = <&hdmi_con_in>;
1801.17Sjmcneill	};
1811.17Sjmcneill};
1821.17Sjmcneill
1831.17Sjmcneill&i2s2 {
1841.17Sjmcneill	status = "okay";
1851.17Sjmcneill};
1861.17Sjmcneill
1871.17Sjmcneill&sound_hdmi {
1881.17Sjmcneill	status = "okay";
1891.17Sjmcneill};
190