// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (C) 2020 Ondrej Jirman <megous@megous.com>

/dts-v1/;

#include "sun50i-a64-pinephone.dtsi"

/ {
	model = "Pine64 PinePhone (1.2)";
	compatible = "pine64,pinephone-1.2", "pine64,pinephone", "allwinner,sun50i-a64";

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
	};
};

&backlight {
	power-supply = <&reg_ldo_io0>;
	/*
	 * PWM backlight circuit on this PinePhone revision was changed since 1.0,
	 * and the lowest PWM duty cycle that doesn't lead to backlight being off
	 * is around 10%. Duty cycle for the lowest brightness level also varries
	 * quite a bit between individual boards, so the lowest value here was
	 * chosen as a safe default.
	 */
	brightness-levels = <
		5000 5248 5506 5858 6345
		6987 7805 8823 10062 11543
		13287 15317 17654 20319 23336
		26724 30505 34702 39335 44427
		50000
	>;
	num-interpolated-steps = <50>;
	default-brightness-level = <500>;
};

&lis3mdl {
	/*
	 * Board revision 1.2 fixed routing of the interrupt to DRDY pin,
	 * enable interrupts.
	 */
	interrupt-parent = <&pio>;
	interrupts = <1 1 IRQ_TYPE_EDGE_RISING>; /* PB1 */
};

&mmc1 {
	mmc-pwrseq = <&wifi_pwrseq>;
};

&sgm3140 {
	enable-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
	flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
};
