/*
 * Spreadtrum SP9860g board
 *
 * Copyright (C) 2017, Spreadtrum Communications Inc.
 *
 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 */

/dts-v1/;

#include "sc9860.dtsi"
#include "sc2731.dtsi"

/ {
	model = "Spreadtrum SP9860G 3GFHD Board";

	compatible = "sprd,sp9860g-1h10", "sprd,sc9860";

	aliases {
		serial0 = &uart0; /* for Bluetooth */
		serial1 = &uart1; /* UART console */
		serial2 = &uart2; /* Reserved */
		serial3 = &uart3; /* for GPS */
		spi0 = &adi_bus;
	};

	memory{
		device_type = "memory";
		reg = <0x0 0x80000000 0 0x60000000>,
		      <0x1 0x80000000 0 0x60000000>;
	};

	chosen {
		stdout-path = "serial1:115200n8";
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
	};

	bat: battery {
		compatible = "simple-battery";
		charge-full-design-microamp-hours = <1900000>;
		charge-term-current-microamp = <120000>;
		constant_charge_voltage_max_microvolt = <4350000>;
		internal-resistance-micro-ohms = <250000>;
		ocv-capacity-celsius = <20>;
		ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>,
			<4022000 85>, <3983000 80>, <3949000 75>,
			<3917000 70>, <3889000 65>, <3864000 60>,
			<3835000 55>, <3805000 50>, <3787000 45>,
			<3777000 40>, <3773000 35>, <3770000 30>,
			<3765000 25>, <3752000 20>, <3724000 15>,
			<3680000 10>, <3605000 5>, <3400000 0>;
	};
};

&uart0 {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};
