svn commit: r308746 - in head/sys/gnu/dts: include/dt-bindings/dma include/dt-bindings/net mips/ingenic

Ruslan Bukin br at FreeBSD.org
Thu Nov 17 11:31:14 UTC 2016


Author: br
Date: Thu Nov 17 11:31:13 2016
New Revision: 308746
URL: https://svnweb.freebsd.org/changeset/base/308746

Log:
  Import Ingenic CI20 (jz4780) DTS files.
  
  Submitted by:	kan
  Sponsored by:	DARPA, AFRL

Added:
  head/sys/gnu/dts/include/dt-bindings/dma/jz4780-dma.h   (contents, props changed)
  head/sys/gnu/dts/include/dt-bindings/net/rfkill-regulator.h   (contents, props changed)
  head/sys/gnu/dts/mips/ingenic/
  head/sys/gnu/dts/mips/ingenic/ci20.dts   (contents, props changed)
  head/sys/gnu/dts/mips/ingenic/jz4780.dtsi   (contents, props changed)

Added: head/sys/gnu/dts/include/dt-bindings/dma/jz4780-dma.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/gnu/dts/include/dt-bindings/dma/jz4780-dma.h	Thu Nov 17 11:31:13 2016	(r308746)
@@ -0,0 +1,49 @@
+#ifndef __DT_BINDINGS_DMA_JZ4780_DMA_H__
+#define __DT_BINDINGS_DMA_JZ4780_DMA_H__
+
+/*
+ * Request type numbers for the JZ4780 DMA controller (written to the DRTn
+ * register for the channel).
+ */
+#define JZ4780_DMA_I2S1_TX	0x4
+#define JZ4780_DMA_I2S1_RX	0x5
+#define JZ4780_DMA_I2S0_TX	0x6
+#define JZ4780_DMA_I2S0_RX	0x7
+#define JZ4780_DMA_AUTO		0x8
+#define JZ4780_DMA_SADC_RX	0x9
+#define JZ4780_DMA_UART4_TX	0xc
+#define JZ4780_DMA_UART4_RX	0xd
+#define JZ4780_DMA_UART3_TX	0xe
+#define JZ4780_DMA_UART3_RX	0xf
+#define JZ4780_DMA_UART2_TX	0x10
+#define JZ4780_DMA_UART2_RX	0x11
+#define JZ4780_DMA_UART1_TX	0x12
+#define JZ4780_DMA_UART1_RX	0x13
+#define JZ4780_DMA_UART0_TX	0x14
+#define JZ4780_DMA_UART0_RX	0x15
+#define JZ4780_DMA_SSI0_TX	0x16
+#define JZ4780_DMA_SSI0_RX	0x17
+#define JZ4780_DMA_SSI1_TX	0x18
+#define JZ4780_DMA_SSI1_RX	0x19
+#define JZ4780_DMA_MSC0_TX	0x1a
+#define JZ4780_DMA_MSC0_RX	0x1b
+#define JZ4780_DMA_MSC1_TX	0x1c
+#define JZ4780_DMA_MSC1_RX	0x1d
+#define JZ4780_DMA_MSC2_TX	0x1e
+#define JZ4780_DMA_MSC2_RX	0x1f
+#define JZ4780_DMA_PCM0_TX	0x20
+#define JZ4780_DMA_PCM0_RX	0x21
+#define JZ4780_DMA_SMB0_TX	0x24
+#define JZ4780_DMA_SMB0_RX	0x25
+#define JZ4780_DMA_SMB1_TX	0x26
+#define JZ4780_DMA_SMB1_RX	0x27
+#define JZ4780_DMA_SMB2_TX	0x28
+#define JZ4780_DMA_SMB2_RX	0x29
+#define JZ4780_DMA_SMB3_TX	0x2a
+#define JZ4780_DMA_SMB3_RX	0x2b
+#define JZ4780_DMA_SMB4_TX	0x2c
+#define JZ4780_DMA_SMB4_RX	0x2d
+#define JZ4780_DMA_DES_TX	0x2e
+#define JZ4780_DMA_DES_RX	0x2f
+
+#endif /* __DT_BINDINGS_DMA_JZ4780_DMA_H__ */

Added: head/sys/gnu/dts/include/dt-bindings/net/rfkill-regulator.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/gnu/dts/include/dt-bindings/net/rfkill-regulator.h	Thu Nov 17 11:31:13 2016	(r308746)
@@ -0,0 +1,23 @@
+/*
+ * This header provides macros for rfkill-regulator bindings.
+ *
+ * Copyright (C) 2014 Marek Belisko <marek at goldelico.com>
+ *
+ * GPLv2 only
+ */
+
+#ifndef __DT_BINDINGS_RFKILL_REGULATOR_H__
+#define __DT_BINDINGS_RFKILL_REGULATOR_H__
+
+
+#define RFKILL_TYPE_ALL		(0)
+#define RFKILL_TYPE_WLAN	(1)
+#define RFKILL_TYPE_BLUETOOTH	(2)
+#define RFKILL_TYPE_UWB		(3)
+#define RFKILL_TYPE_WIMAX	(4)
+#define RFKILL_TYPE_WWAN	(5)
+#define RFKILL_TYPE_GPS		(6)
+#define RFKILL_TYPE_FM		(7)
+#define RFKILL_TYPE_NFC		(8)
+
+#endif /* __DT_BINDINGS_RFKILL_REGULATOR_H__ */

Added: head/sys/gnu/dts/mips/ingenic/ci20.dts
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/gnu/dts/mips/ingenic/ci20.dts	Thu Nov 17 11:31:13 2016	(r308746)
@@ -0,0 +1,395 @@
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/net/rfkill-regulator.h>
+#include "jz4780.dtsi"
+
+/ {
+	compatible = "imgtec,ci20", "ingenic,jz4780";
+
+	aliases {
+		serial0 = &uart0;
+		serial1 = &uart1;
+		serial3 = &uart3;
+		serial4 = &uart4;
+	};
+
+	chosen {
+		stdout-path = &uart4;
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x0 0x10000000
+		       0x30000000 0x30000000>;
+	};
+
+	audio: audio-ci20 {
+		compatible = "ingenic,ci20-audio";
+		ingenic,i2s-controller = <&i2s>;
+		ingenic,codec = <&codec>;
+	};
+
+	eth0_power: fixedregulator at 0 {
+		compatible = "regulator-fixed";
+		regulator-name = "eth0_power";
+		gpio = <&gpb 25 GPIO_ACTIVE_LOW>;
+		enable-active-high;
+	};
+
+	hdmi_power: fixedregulator at 1 {
+		compatible = "regulator-fixed";
+		regulator-name = "hdmi_power";
+		gpio = <&gpa 25 GPIO_ACTIVE_LOW>;
+		enable-active-high;
+		regulator-always-on;
+	};
+
+	wifi_power: fixedregulator at 2 {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi_power_gpio";
+		gpio = <&gpb 19 0>;
+		enable-active-high;
+
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+	};
+
+	/* HACK: Keeping wifi reset high. No simple driver fix */
+	wifi_reset: fixedregulator at 3 {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi_reset_gpio";
+		gpio = <&gpf 7 0>;
+		enable-active-high;
+		regulator-always-on;
+	};
+
+	/* HACK: Keeping BT reset high. No simple driver fix */
+	bt_reset: fixedregulator at 4 {
+		compatible = "regulator-fixed";
+		regulator-name = "bt_reset_gpio";
+		gpio = <&gpf 8 0>;
+		enable-active-high;
+	};
+
+	/* HACK: Keeping BT_reg_on high. No simple driver fix */
+	bt_reg_on: fixedregulator at 5 {
+		compatible = "regulator-fixed";
+		regulator-name = "bt_reg_on_gpio";
+		gpio = <&gpf 4 0>;
+		enable-active-high;
+		regulator-always-on;
+	};
+
+	/* HACK: Keeping BT wake high. No simple driver fix */
+	bt_wake: fixedregulator at 6 {
+		compatible = "regulator-fixed";
+		regulator-name = "bt_wake_gpio";
+		gpio = <&gpf 5 0>;
+		enable-active-high;
+		regulator-always-on;
+	};
+
+	ir: ir-receiver {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
+	};
+
+	bt-rfkill {
+		compatible = "rfkill-regulator";
+		label = "bt-reset";
+		type = <RFKILL_TYPE_BLUETOOTH>;
+		vrfkill-supply = <&bt_reset>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		led3 {
+			gpios = <&gpc 0 0>;
+			linux,default-trigger = "cpu0";
+		};
+		led2 {
+			gpios = <&gpc 1 0>;
+			linux,default-trigger = "cpu1";
+		};
+		led1 {
+			gpios = <&gpc 2 0>;
+			linux,default-trigger = "nand-disk";
+		};
+		led0 {
+			gpios = <&gpc 3 0>;
+			linux,default-trigger = "none";
+		};
+	};
+};
+
+&ext {
+	clock-frequency = <48000000>;
+};
+
+&msc0 {
+	bus-width = <4>;
+	max-frequency = <50000000>;
+	cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_msc0_pe>;
+};
+
+&msc1 {
+	bus-width = <4>;
+	max-frequency = <24000000>;
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_msc1_pd>;
+	vmmc-supply = <&wifi_power>;
+};
+
+&ehci {
+	ingenic,vbus-gpio = <&gpf 15 0>;
+};
+
+&ohci {
+	ingenic,vbus-gpio = <&gpf 15 0>;
+};
+
+&nemc {
+	/*
+	 * Only CLE/ALE are needed for the devices that are connected, rather
+	 * than the full address line set.
+	 */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_nemc_data
+		     &pins_nemc_cle_ale
+		     &pins_nemc_rd_we
+		     &pins_nemc_frd_fwe>;
+
+	nand: nand at 1 {
+		compatible = "ingenic,jz4780-nand";
+		reg = <1 0 0x1000000>;
+
+		ingenic,nemc-tAS = <10>;
+		ingenic,nemc-tAH = <5>;
+		ingenic,nemc-tBP = <10>;
+		ingenic,nemc-tAW = <15>;
+		ingenic,nemc-tSTRV = <100>;
+
+		ingenic,bch-device = <&bch>;
+		ingenic,ecc-size = <1024>;
+		ingenic,ecc-strength = <24>;
+
+		ingenic,busy-gpio = <&gpa 20 GPIO_ACTIVE_LOW>;
+		ingenic,wp-gpio = <&gpf 22 GPIO_ACTIVE_LOW>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&pins_nemc_cs1>;
+
+		#address-cells = <2>;
+		#size-cells = <2>;
+
+		partition at 0 {
+			label = "u-boot-spl";
+			reg = <0x0 0x0 0x0 0x800000>;
+		};
+
+		partition at 0x800000 {
+			label = "u-boot";
+			reg = <0x0 0x800000 0x0 0x200000>;
+		};
+
+		partition at 0xa00000 {
+			label = "u-boot-env";
+			reg = <0x0 0xa00000 0x0 0x200000>;
+		};
+
+		partition at 0xc00000 {
+			label = "boot";
+			reg = <0x0 0xc00000 0x0 0x4000000>;
+		};
+
+		partition at 0x8c00000 {
+			label = "system";
+			reg = <0x0 0x4c00000 0x1 0xfb400000>;
+		};
+	};
+
+	dm9000 at 6 {
+		compatible = "davicom,dm9000";
+		davicom,no-eeprom;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&pins_nemc_cs6>;
+
+		reg = <6 0x0 1   /* addr */
+		       6 0x2 1>; /* data */
+
+		ingenic,nemc-tAS = <15>;
+		ingenic,nemc-tAH = <10>;
+		ingenic,nemc-tBP = <20>;
+		ingenic,nemc-tAW = <50>;
+		ingenic,nemc-tSTRV = <100>;
+
+		reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
+		vcc-supply = <&eth0_power>;
+
+		interrupt-parent = <&gpe>;
+		interrupts = <19 0x4>;
+	};
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_uart0_data>;
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_uart1_data>;
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_uart2_dataplusflow>;
+};
+
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_uart3_data>;
+};
+
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_uart4_data>;
+};
+
+&i2c0 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_i2c0_data>;
+
+	pmic: act8600 at 5a {
+		compatible = "active-semi,act8600";
+		reg = <0x5a>;
+
+		regulators {
+			vcore1v_reg: DCDC_REG1 {
+				regulator-name = "vcore1v2";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-always-on;
+			};
+
+			vddmem1v5_reg: DCDC_REG2 {
+				regulator-name = "vddmem1v5";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <1500000>;
+				regulator-always-on;
+			};
+
+			vccio3v3_reg: DCDC_REG3 {
+				regulator-name = "vccio3v3";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vcc2v5_reg: LDO_REG5 {
+				regulator-name = "vcc2.5";
+				regulator-min-microvolt = <2500000>;
+				regulator-max-microvolt = <2500000>;
+				regulator-always-on;
+			};
+
+			vwifi_reg: LDO_REG6 {
+				regulator-name = "vwifi3v3";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vcim2v8_reg: LDO_REG7 {
+				regulator-name = "vcim2v8";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			vcim1v5_reg: LDO_REG8 {
+				regulator-name = "vcim1v5";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <1500000>;
+			};
+
+			/* Do not disable RTC as they connect to reset line */
+			vrtc1v8_reg: LDO_REG9 {
+				regulator-name = "vrtc1v8";
+				regulator-always-on;
+			};
+
+			vrtc1v1_reg: LDO_REG10 {
+				regulator-name = "vrtc1v2";
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_i2c1_data>;
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_i2c2_data>;
+
+	ov5640 at 0x3C {
+		compatible = "omnivision,ov5640";
+		reg = <0x3C>;
+
+		core-supply = <&vcim1v5_reg>;
+		analog-supply = <&vcim2v8_reg>;
+
+		gpio-enable = <&gpb 18 0>;
+		gpio-reset = <&gpb 26 0>;
+
+		remote = <&cim>;
+		port {
+			ov5640_1: endpoint {
+				bus-width = <8>;
+				remote-endpoint = <&cim>;
+			};
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_i2c3_data>;
+};
+
+&i2c4 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pins_i2c4_data_pf>;
+};
+
+&cim {
+	clock-frequency = <24000000>;
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* Parallel bus endpoint */
+		camera: endpoint at 0 {
+			reg = <0>;		/* Local endpoint # */
+			remote-endpoint = <&ov5640_1>;
+			hsync-active = <1>;	/* Active high */
+			vsync-active = <1>;	/* Active high */
+			pclk-sample = <0>;	/* Falling */
+		};
+	};
+};

Added: head/sys/gnu/dts/mips/ingenic/jz4780.dtsi
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/gnu/dts/mips/ingenic/jz4780.dtsi	Thu Nov 17 11:31:13 2016	(r308746)
@@ -0,0 +1,768 @@
+#include <dt-bindings/clock/jz4780-cgu.h>
+#include <dt-bindings/dma/jz4780-dma.h>
+
+/ {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	compatible = "ingenic,jz4780";
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: cpu at 0 {
+			compatible = "ingenic,xburst";
+			reg = <0>;
+		};
+		cpu1: cpu at 1 {
+			compatible = "ingenic,xburst";
+			reg = <1>;
+			clocks = <&cgu JZ4780_CLK_CORE1>;
+		};
+	};
+
+	cpuintc: cpuintc at 0 {
+		#address-cells = <0>;
+		#interrupt-cells = <1>;
+		interrupt-controller;
+		compatible = "mti,cpu-interrupt-controller";
+	};
+
+	intc: intc at 10001000 {
+		compatible = "ingenic,jz4780-intc";
+		reg = <0x10001000 0x50>;
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		interrupt-parent = <&cpuintc>;
+		interrupts = <2>;
+	};
+
+	ext: ext {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+	};
+
+	rtc: rtc {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+	};
+
+	cgu: jz4780-cgu at 10000000 {
+		compatible = "ingenic,jz4780-cgu";
+		reg = <0x10000000 0x100>;
+
+		clocks = <&ext>, <&rtc>;
+		clock-names = "ext", "rtc";
+
+		#clock-cells = <1>;
+	};
+
+	gpu: jz4780-sgx at 13040000 {
+		compatible = "ingenic,jz4780-sgx";
+		reg = <0x13040000 0x4000>;
+
+		clocks = <&cgu JZ4780_CLK_GPU>;
+		clock-names = "gpu";
+
+		interrupt-parent = <&intc>;
+		interrupts = <63>;
+	};
+
+	apb {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <>;
+
+		tcu at 0x10002000 {
+			compatible = "ingenic,jz4780-tcu";
+			reg = <0x10002000 0x140>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <27 26 25>;
+		};
+
+		watchdog: jz47xx-watchdog at 0x10002000 {
+			compatible = "ingenic,jz4780-watchdog";
+			reg = <0x10002000 0x100>;
+
+			clocks = <&rtc>;
+			clock-names = "rtc";
+		};
+
+		rtcdev: rtcdev at 10003000 {
+			compatible = "ingenic,jz4780-rtc";
+			reg = <0x10003000 0x4c>;
+			interrupt-parent = <&intc>;
+			interrupts = <32>;
+		};
+
+		i2s: i2s at 10020000 {
+			compatible = "ingenic,jz4780-i2s";
+			reg = <0x10020000 0x94>;
+
+			clocks = <&cgu JZ4780_CLK_AIC>, <&cgu JZ4780_CLK_I2SPLL>;
+			clock-names = "aic", "i2s";
+
+			dmas = <&dma 0 JZ4780_DMA_I2S0_RX 0xffffffff>, <&dma JZ4780_DMA_I2S0_TX 0 0xffffffff>;
+			dma-names = "rx" , "tx";
+
+		};
+
+		codec: codec at 100200a4 {
+			compatible = "ingenic,jz4780-codec";
+			reg = <0x100200a4 0x8>;
+
+			clocks = <&cgu JZ4780_CLK_I2SPLL>;
+			clock-names = "i2s";
+
+		};
+
+		pinctrl at 0x10010000 {
+			compatible = "ingenic,jz4780-pinctrl";
+			reg = <0x10010000 0x600>;
+
+			gpa: gpa {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <17>;
+
+				ingenic,pull-ups = <0x3fffffff>;
+			};
+
+			gpb: gpb {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <16>;
+
+				ingenic,pull-downs = <0x000f0c03>;
+				ingenic,pull-ups   = <0xfff0030c>;
+			};
+
+			gpc: gpc {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <15>;
+
+				ingenic,pull-ups = <0xffffffff>;
+			};
+
+			gpd: gpd {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <14>;
+
+				ingenic,pull-downs = <0x0000b000>;
+				ingenic,pull-ups   = <0xffff4fff>;
+			};
+
+			gpe: gpe {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <13>;
+
+				ingenic,pull-downs = <0x00000483>;
+				ingenic,pull-ups   = <0xfffffb7c>;
+			};
+
+			gpf: gpf {
+				gpio-controller;
+				#gpio-cells = <2>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+
+				interrupt-parent = <&intc>;
+				interrupts = <12>;
+
+				ingenic,pull-downs = <0x00580ff0>;
+				ingenic,pull-ups   = <0xffa7f00f>;
+			};
+
+			pincfg_nobias: nobias {
+				bias-disable;
+			};
+
+			pincfg_pull_up: pull_up {
+				bias-pull-up;
+			};
+
+			pincfg_pull_down: pull_down {
+				bias-pull-down;
+			};
+
+			pinfunc_uart0: uart0 {
+				pins_uart0_data: uart0-data {
+					ingenic,pins = <&gpf  0 0 &pincfg_pull_up  /* rxd */
+							&gpf  3 0 &pincfg_nobias>; /* txd */
+				};
+
+				pins_uart0_dataplusflow: uart0-dataplusflow {
+					ingenic,pins = <&gpf  0 0 &pincfg_pull_up  /* rxd */
+							&gpf  1 0 &pincfg_nobias   /* cts */
+							&gpf  2 0 &pincfg_nobias   /* rts */
+							&gpf  3 0 &pincfg_nobias>; /* txd */
+				};
+			};
+
+			pinfunc_uart1: uart1 {
+				pins_uart1_data: uart1-data {
+					ingenic,pins = <&gpd  26 0 &pincfg_pull_up  /* rxd */
+							&gpd  28 0 &pincfg_nobias>; /* txd */
+				};
+
+				pins_uart1_dataplusflow: uart1-dataplusflow {
+					ingenic,pins = <&gpd  26 0 &pincfg_pull_up  /* rxd */
+							&gpd  27 0 &pincfg_nobias   /* cts */
+							&gpd  29 0 &pincfg_nobias   /* rts */
+							&gpd  28 0 &pincfg_nobias>; /* txd */
+				};
+			};
+
+			pinfunc_uart2: uart2 {
+				pins_uart2_data: uart2-data {
+					ingenic,pins = <&gpd  6 1 &pincfg_nobias  /* rxd */
+							&gpd  7 1 &pincfg_nobias>; /* txd */
+				};
+
+				pins_uart2_dataplusflow: uart2-dataplusflow {
+					ingenic,pins = <&gpd  6 1 &pincfg_nobias  /* rxd */
+							&gpd  5 1 &pincfg_nobias   /* cts */
+							&gpd  4 1 &pincfg_nobias   /* rts */
+							&gpd  7 1 &pincfg_nobias>; /* txd */
+				};
+			};
+
+			pinfunc_uart3: uart3 {
+				pins_uart3_data: uart3-data {
+					ingenic,pins = <&gpd 12 0 &pincfg_pull_down /* rxd */
+							&gpe  5 1 &pincfg_nobias>;  /* txd */
+				};
+
+				pins_uart3_dataplusflow: uart3-dataplusflow {
+					ingenic,pins = <&gpd 12 0 &pincfg_pull_down /* rxd */
+							&gpe  5 1 &pincfg_nobias    /* txd */
+							&gpe  8 0 &pincfg_nobias    /* cts */
+							&gpe  9 0 &pincfg_nobias>;  /* rts */
+				};
+			};
+
+			pinfunc_uart4: uart4 {
+				pins_uart4_data: uart4-data {
+					ingenic,pins = <&gpc 20 2 &pincfg_pull_up   /* rxd */
+							&gpc 10 2 &pincfg_nobias>;  /* txd */
+				};
+			};
+
+			pinfunc_msc0: msc0 {
+				pins_msc0_pa: msc0-pa {
+					ingenic,pins = <&gpa  4 1 &pincfg_nobias   /* d4 */
+							&gpa  5 1 &pincfg_nobias   /* d5 */
+							&gpa  6 1 &pincfg_nobias   /* d6 */
+							&gpa  7 1 &pincfg_nobias   /* d7 */
+							&gpa 18 1 &pincfg_nobias   /* clk */
+							&gpa 19 1 &pincfg_nobias   /* cmd */
+							&gpa 20 1 &pincfg_nobias   /* d0 */
+							&gpa 21 1 &pincfg_nobias   /* d1 */
+							&gpa 22 1 &pincfg_nobias   /* d2 */
+							&gpa 23 1 &pincfg_nobias   /* d3 */
+							&gpa 24 1 &pincfg_nobias>; /* rst */
+				};
+
+				pins_msc0_pe: msc0-pe {
+					ingenic,pins = <&gpe 20 0 &pincfg_nobias   /* d0 */
+							&gpe 21 0 &pincfg_nobias   /* d1 */
+							&gpe 22 0 &pincfg_nobias   /* d2 */
+							&gpe 23 0 &pincfg_nobias   /* d3 */
+							&gpe 28 0 &pincfg_nobias   /* clk */
+							&gpe 29 0 &pincfg_nobias>; /* cmd */
+				};
+			};
+
+			pinfunc_msc1: msc1 {
+				pins_msc1_pd: msc1-pd {
+					ingenic,pins = <&gpd 20 0 &pincfg_nobias   /* d0 */
+							&gpd 21 0 &pincfg_nobias   /* d1 */
+							&gpd 22 0 &pincfg_nobias   /* d2 */
+							&gpd 23 0 &pincfg_nobias   /* d3 */
+							&gpd 24 0 &pincfg_nobias   /* clk */
+							&gpd 25 0 &pincfg_nobias>; /* cmd */
+				};
+
+				pins_msc1_pe: msc1-pe {
+					ingenic,pins = <&gpe 20 1 &pincfg_nobias   /* d0 */
+							&gpe 21 1 &pincfg_nobias   /* d1 */
+							&gpe 22 1 &pincfg_nobias   /* d2 */
+							&gpe 23 1 &pincfg_nobias   /* d3 */
+							&gpe 28 1 &pincfg_nobias   /* clk */
+							&gpe 29 1 &pincfg_nobias>; /* cmd */
+				};
+			};
+
+			pinfunc_nemc: nemc {
+				pins_nemc_data: nemc-data {
+					ingenic,pins = <&gpa 0 0 &pincfg_nobias    /* sd0 */
+							&gpa 1 0 &pincfg_nobias    /* sd1 */
+							&gpa 2 0 &pincfg_nobias    /* sd2 */
+							&gpa 3 0 &pincfg_nobias    /* sd3 */
+							&gpa 4 0 &pincfg_nobias    /* sd4 */
+							&gpa 5 0 &pincfg_nobias    /* sd5 */
+							&gpa 6 0 &pincfg_nobias    /* sd6 */
+							&gpa 7 0 &pincfg_nobias>;  /* sd7 */
+				};
+
+				pins_nemc_cle_ale: nemc-cle-ale {
+					ingenic,pins = <&gpb 0 0 &pincfg_nobias    /* sa0_cl */
+							&gpb 1 0 &pincfg_nobias>;  /* sa1_al */
+				};
+
+				pins_nemc_addr: nemc-addr {
+					ingenic,pins = <&gpb 0 0 &pincfg_nobias    /* sa0_cl */
+							&gpb 1 0 &pincfg_nobias    /* sa1_al */
+							&gpb 2 0 &pincfg_nobias    /* sa2 */
+							&gpb 3 0 &pincfg_nobias    /* sa3 */
+							&gpb 4 0 &pincfg_nobias    /* sa4 */
+							&gpb 5 0 &pincfg_nobias>;  /* sa5 */
+				};
+
+				pins_nemc_rd_we: nemc-rd-we {
+					ingenic,pins = <&gpa 16 0 &pincfg_nobias   /* rd */
+							&gpa 17 0 &pincfg_nobias>; /* we */
+				};
+
+				pins_nemc_frd_fwe: nemc-frd-fwe {
+					ingenic,pins = <&gpa 18 0 &pincfg_nobias   /* rd */
+							&gpa 19 0 &pincfg_nobias>; /* we */
+				};
+
+				pins_nemc_cs1: nemc-cs1 {
+					ingenic,pins = <&gpa 21 0 &pincfg_nobias>; /* cs1 */
+				};
+
+				pins_nemc_cs6: nemc-cs6 {
+					ingenic,pins = <&gpa 26 0 &pincfg_nobias>; /* cs6 */
+				};
+			};
+
+			pinfunc_i2c0: i2c0 {
+				pins_i2c0_data: i2c0-data{
+					ingenic,pins = <&gpd  30 0 &pincfg_nobias  /* sda */
+							&gpd  31 0 &pincfg_nobias>; /* sck */
+				};
+			};
+
+			pinfunc_i2c1: i2c1 {
+				pins_i2c1_data: i2c1-data{
+					ingenic,pins = <&gpe  30 0 &pincfg_nobias  /* sda */
+							&gpe  31 0 &pincfg_nobias>; /* sck */
+				};
+			};
+
+			pinfunc_i2c2: i2c2 {
+				pins_i2c2_data: i2c2-data{
+					ingenic,pins = <&gpf  16 2 &pincfg_nobias  /* sda */
+							&gpf  17 2 &pincfg_nobias>; /* sck */
+				};
+			};
+
+			pinfunc_i2c3: i2c3 {
+				pins_i2c3_data: i2c3-data{
+					ingenic,pins = <&gpd  10 1 &pincfg_nobias  /* sda */
+							&gpd  11 1 &pincfg_nobias>; /* sck */
+				};
+			};
+
+			pinfunc_i2c4: i2c4 {
+				pins_i2c4_data: i2c4-data-pe{
+					ingenic,pins = <&gpe  12 1 &pincfg_nobias  /* sda */
+							&gpe  13 1 &pincfg_nobias>; /* sck */
+				};
+
+				pins_i2c4_data_pf: i2c4-data-pf{
+					ingenic,pins = <&gpf 25 1 &pincfg_nobias /* hdmi_sda */
+							&gpf 24 1 &pincfg_nobias>; /* hdmi_sck */
+				};
+			};
+
+			pinfunc_cim: cim {
+				pins_cim: cim-pb {
+					ingenic,pins = <&gpb   6 0 &pincfg_nobias
+							&gpb   7 0 &pincfg_nobias
+							&gpb   8 0 &pincfg_nobias
+							&gpb   9 0 &pincfg_nobias
+							&gpb  10 0 &pincfg_nobias
+							&gpb  11 0 &pincfg_nobias
+							&gpb  12 0 &pincfg_nobias
+							&gpb  13 0 &pincfg_nobias
+							&gpb  14 0 &pincfg_nobias
+							&gpb  15 0 &pincfg_nobias
+							&gpb  16 0 &pincfg_nobias
+							&gpb  17 0 &pincfg_nobias>;
+				};
+			};
+		};
+
+		spi_gpio {
+			compatible = "spi-gpio";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			num-chipselects = <2>;
+
+			gpio-miso = <&gpe 14 0>;
+			gpio-sck = <&gpe 15 0>;
+			gpio-mosi = <&gpe 17 0>;
+			cs-gpios = <&gpe 16 0
+					&gpe 18 0>;
+
+			spidev at 0 {
+				compatible = "spidev";
+				reg = <0>;
+				spi-max-frequency = <1000000>;
+			};
+		};
+
+		uart0: serial at 10030000 {
+			compatible = "ingenic,jz4780-uart";
+			reg = <0x10030000 0x100>;
+			reg-shift = <2>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <51>;
+
+			clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
+			clock-names = "baud", "module";
+		};
+
+		uart1: serial at 10031000 {
+			compatible = "ingenic,jz4780-uart";
+			reg = <0x10031000 0x100>;
+			reg-shift = <2>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <50>;
+
+			clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
+			clock-names = "baud", "module";
+		};
+
+		uart2: serial at 10032000 {
+			compatible = "ingenic,jz4780-uart";
+			reg = <0x10032000 0x100>;
+			reg-shift = <2>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <49>;
+
+			clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
+			clock-names = "baud", "module";
+		};
+
+		uart3: serial at 10033000 {
+			compatible = "ingenic,jz4780-uart";
+			reg = <0x10033000 0x100>;
+			reg-shift = <2>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <48>;
+
+			clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
+			clock-names = "baud", "module";
+		};
+
+		uart4: serial at 10034000 {
+			compatible = "ingenic,jz4780-uart";
+			reg = <0x10034000 0x100>;
+			reg-shift = <2>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <34>;
+
+			clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
+			clock-names = "baud", "module";
+		};
+
+		i2c0: i2c0 at 0x10050000 {
+			compatible = "ingenic,jz4780-i2c";
+			reg = <0x10050000 0x1000>;
+
+			interrupt-parent = <&intc>;
+			interrupts = <60>;
+
+			clocks = <&cgu JZ4780_CLK_SMB0>;
+
+			#address-cells = <1>;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list