Home | History | Annotate | Line # | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0-only
      2 /*
      3  *  linux/arch/arm/boot/nspire.dtsi
      4  *
      5  *  Copyright (C) 2013 Daniel Tang <tangrs (a] tangrs.id.au>
      6  */
      7 
      8 / {
      9 	#address-cells = <1>;
     10 	#size-cells = <1>;
     11 	interrupt-parent = <&intc>;
     12 
     13 	cpus {
     14 		cpu@0 {
     15 			compatible = "arm,arm926ej-s";
     16 		};
     17 	};
     18 
     19 	bootrom: bootrom@0 {
     20 		reg = <0x00000000 0x80000>;
     21 	};
     22 
     23 	sram: sram@A4000000 {
     24 		device = "memory";
     25 		reg = <0xA4000000 0x20000>;
     26 	};
     27 
     28 	timer_clk: timer_clk {
     29 		#clock-cells = <0>;
     30 		compatible = "fixed-clock";
     31 		clock-frequency = <32768>;
     32 	};
     33 
     34 	base_clk: base_clk {
     35 		#clock-cells = <0>;
     36 		reg = <0x900B0024 0x4>;
     37 	};
     38 
     39 	ahb_clk: ahb_clk {
     40 		#clock-cells = <0>;
     41 		reg = <0x900B0024 0x4>;
     42 		clocks = <&base_clk>;
     43 	};
     44 
     45 	apb_pclk: apb_pclk {
     46 		#clock-cells = <0>;
     47 		compatible = "fixed-factor-clock";
     48 		clock-div = <2>;
     49 		clock-mult = <1>;
     50 		clocks = <&ahb_clk>;
     51 	};
     52 
     53 	usb_phy: usb_phy {
     54 		compatible = "usb-nop-xceiv";
     55 		#phy-cells = <0>;
     56 	};
     57 
     58 	vbus_reg: vbus_reg {
     59 		compatible = "regulator-fixed";
     60 
     61 		regulator-name = "USB VBUS output";
     62 		regulator-type = "voltage";
     63 
     64 		regulator-min-microvolt = <5000000>;
     65 		regulator-max-microvolt = <5000000>;
     66 	};
     67 
     68 	ahb {
     69 		compatible = "simple-bus";
     70 		#address-cells = <1>;
     71 		#size-cells = <1>;
     72 		ranges;
     73 
     74 		spi: spi@A9000000 {
     75 			reg = <0xA9000000 0x1000>;
     76 		};
     77 
     78 		usb0: usb@B0000000 {
     79 			compatible = "lsi,zevio-usb";
     80 			reg = <0xB0000000 0x1000>;
     81 			interrupts = <8>;
     82 
     83 			usb-phy = <&usb_phy>;
     84 			vbus-supply = <&vbus_reg>;
     85 		};
     86 
     87 		usb1: usb@B4000000 {
     88 			reg = <0xB4000000 0x1000>;
     89 			interrupts = <9>;
     90 			status = "disabled";
     91 		};
     92 
     93 		lcd: lcd@C0000000 {
     94 			compatible = "arm,pl111", "arm,primecell";
     95 			reg = <0xC0000000 0x1000>;
     96 			interrupts = <21>;
     97 
     98 			/*
     99 			 * We assume the same clock is fed to APB and CLCDCLK.
    100 			 * There is some code to scale the clock down by a factor
    101 			 * 48 for the display so likely the frequency to the
    102 			 * display is 1MHz and the CLCDCLK is 48 MHz.
    103 			 */
    104 			clocks = <&apb_pclk>, <&apb_pclk>;
    105 			clock-names = "clcdclk", "apb_pclk";
    106 		};
    107 
    108 		adc: adc@C4000000 {
    109 			reg = <0xC4000000 0x1000>;
    110 			interrupts = <11>;
    111 		};
    112 
    113 		tdes: crypto@C8010000 {
    114 			reg = <0xC8010000 0x1000>;
    115 		};
    116 
    117 		sha256: crypto@CC000000 {
    118 			reg = <0xCC000000 0x1000>;
    119 		};
    120 
    121 		apb@90000000 {
    122 			compatible = "simple-bus";
    123 			#address-cells = <1>;
    124 			#size-cells = <1>;
    125 			clock-ranges;
    126 			ranges;
    127 
    128 			gpio: gpio@90000000 {
    129 				compatible = "lsi,zevio-gpio";
    130 				reg = <0x90000000 0x1000>;
    131 				interrupts = <7>;
    132 				gpio-controller;
    133 				#gpio-cells = <2>;
    134 			};
    135 
    136 			fast_timer: timer@90010000 {
    137 				reg = <0x90010000 0x1000>;
    138 				interrupts = <17>;
    139 			};
    140 
    141 			uart: serial@90020000 {
    142 				reg = <0x90020000 0x1000>;
    143 				interrupts = <1>;
    144 			};
    145 
    146 			timer0: timer@900C0000 {
    147 				reg = <0x900C0000 0x1000>;
    148 				clocks = <&timer_clk>, <&timer_clk>,
    149 					 <&timer_clk>;
    150 				clock-names = "timer0clk", "timer1clk",
    151 					      "apb_pclk";
    152 			};
    153 
    154 			timer1: timer@900D0000 {
    155 				reg = <0x900D0000 0x1000>;
    156 				interrupts = <19>;
    157 				clocks = <&timer_clk>, <&timer_clk>,
    158 					 <&timer_clk>;
    159 				clock-names = "timer0clk", "timer1clk",
    160 					      "apb_pclk";
    161 			};
    162 
    163 			watchdog: watchdog@90060000 {
    164 				compatible = "arm,amba-primecell";
    165 				reg = <0x90060000 0x1000>;
    166 				interrupts = <3>;
    167 			};
    168 
    169 			rtc: rtc@90090000 {
    170 				reg = <0x90090000 0x1000>;
    171 				interrupts = <4>;
    172 			};
    173 
    174 			misc: misc@900A0000 {
    175 				reg = <0x900A0000 0x1000>;
    176 			};
    177 
    178 			pwr: pwr@900B0000 {
    179 				reg = <0x900B0000 0x1000>;
    180 				interrupts = <15>;
    181 			};
    182 
    183 			keypad: input@900E0000 {
    184 				compatible = "ti,nspire-keypad";
    185 				reg = <0x900E0000 0x1000>;
    186 				interrupts = <16>;
    187 
    188 				scan-interval = <1000>;
    189 				row-delay = <200>;
    190 
    191 				clocks = <&apb_pclk>;
    192 			};
    193 
    194 			contrast: contrast@900F0000 {
    195 				reg = <0x900F0000 0x1000>;
    196 			};
    197 
    198 			led: led@90110000 {
    199 				reg = <0x90110000 0x1000>;
    200 			};
    201 		};
    202 	};
    203 };
    204