/*
 * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/dts-v1/;
#include "skeleton.dtsi"
#include <dt-bindings/qcom/gpio-ipq5018.h>
/ {
	model ="QCA, IPQ5018-MP03.1";
	compatible = "qca,ipq5018", "qca,ipq5018-mp03.1";
	machid = <0x8040001>;
	config_name = "config@mp03.1";

	serial@78AF000 {
		compatible = "qca,ipq-uartdm";
		reg = <0x78af000 0x200>;
		m_value = <0x24>;
		n_value = <0xC31A>;
		d_value = <0xC2F6>;
		bit_rate = <0xff>;
		status = "ok";
		serial_gpio {
			blsp0_uart_rx {
				gpio = <20>;
				func = <1>;
				pull = <GPIO_PULL_DOWN>;
				drvstr = <GPIO_8MA>;
				od_en = <GPIO_OD_DISABLE>;
			};
			blsp0_uart_tx {
				gpio = <21>;
				func = <1>;
				pull = <GPIO_NO_PULL>;
				drvstr = <GPIO_8MA>;
				od_en = <GPIO_OD_DISABLE>;
			};
		};
	};

	timer {
		gcnt_cntcv_lo = <0x4a2000>;
		gcnt_cntcv_hi = <0x4a2004>;
		gpt_freq_hz = <24000000>;
		timer_load_val = <0x00FFFFFF 0xFFFFFFFF>;
	};

	aliases {
		console = "/serial@78AF000";
	};


};
