Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/* $NetBSD: sun50i-a64-pinebook.dts,v 1.16.2.1 2019/11/25 16:18:40 martin Exp $ */

/*-
 * Copyright (c) 2017-2019 Jared McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include "../../../external/gpl2/dts/dist/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts"
#include "sun50i-a64.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pwm/pwm.h>

/ {
	chosen {
		framebuffer@0 {
			allwinner,pipeline = "mixer0-lcd0";
		};
	};

	gpio_keys {
		lid_switch {
			/*
			 * This is listed as PL12 in 4.20.3 sources, but
			 * we have used PH10 all along.
			 */
			gpios = <&pio 7 10 GPIO_ACTIVE_LOW>;	/* PH10 */
		};
	};

	sound_spdif {
		status = "disabled";
	};

	hdmi-connector {
		compatible = "hdmi-connector";
		type = "c";

		port {
			hdmi_con_in: endpoint {
				remote-endpoint = <&hdmi_out_con>;
			};
		};
	};
};

&cpu0 {
	cpu-supply = <&reg_dcdc2>;
	operating-points = <
		/* kHz    uV */
		1152000 1300000
		1104000 1260000
		1008000 1200000
		816000  1080000
		648000	1040000
		408000	1000000
		>;
};

&spdif_out {
	status = "disabled";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
	status = "okay";
	bluetooth {
		compatible = "realtek,rtl8723cs-bt";
		reset-gpios = <&r_pio 0 4 GPIO_ACTIVE_LOW>; /* PL4 */
		device-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
		host-wake-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
		firmware-postfix = "pinebook";
	};
};

&codec {
	allwinner,pa-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>;	/* PH7 */
	status = "okay";
};

&de {
	status = "okay";
};

&mixer0 {
	status = "okay";
};

&pio {
	lcd_rgb666_pins: lcd-rgb666 {
		pins = "PD0", "PD1", "PD2", "PD3", "PD4",
		       "PD5", "PD6", "PD7", "PD8", "PD9",
		       "PD10", "PD11", "PD12", "PD13",
		       "PD14", "PD15", "PD16", "PD17",
		       "PD18", "PD19", "PD20", "PD21";
		function = "lcd0";
	};
};

&tcon0 {
	pinctrl-names = "default";
	pinctrl-0 = <&lcd_rgb666_pins>;

	status = "okay";
};

&tcon0_out {
	tcon0_out_anx6345: endpoint@0 {
		reg = <0>;
		remote-endpoint = <&anx6345_in>;
	};
};

&r_pio {
	r_i2c_pins_a: i2c-a {
		pins = "PL8", "PL9";
		function = "s_i2c";
	};
};

&r_i2c {
	pinctrl-names = "default";
	pinctrl-0 = <&r_i2c_pins_a>;
	status = "okay";

	anx6345: anx6345@38 {
		compatible = "analogix,anx6345";
		reg = <0x38>;
		reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>;	/* PD24 */
		panel-supply = <&reg_dc1sw>;
		dvdd25-supply = <&reg_dldo2>;
		dvdd12-supply = <&reg_fldo1>;

		port {
			anx6345_in: endpoint {
				remote-endpoint = <&tcon0_out_anx6345>;
			};
		};
	};
};

&reg_dldo1 {
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
	regulator-name = "vcc-hdmi";
};

&hdmi {
	hvcc-supply = <&reg_dldo1>;
	status = "okay";
};

&hdmi_out {
	hdmi_out_con: endpoint {
		remote-endpoint = <&hdmi_con_in>;
	};
};

&i2s2 {
	status = "okay";
};

&sound_hdmi {
	status = "okay";
};