Reals 23.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
;
; Copyright (c) 2011, Tank Stage Lighting
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;     * Redistributions of source code must retain the above copyright
;       notice, this list of conditions and the following disclaimer.
;     * Redistributions in binary form must reproduce the above copyright
;       notice, this list of conditions and the following disclaimer in the
;       documentation and/or other materials provided with the distribution.
;     * Neither the name of the copyright holder nor the names of their
;       contributors may be used to endorse or promote products derived from
;       this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;

;hdr.reals

;********************** D A T A  S T R U C T U R E ************************
		^	0			; beginaddress
;which machine are we running on
machine		#	4			;gpio machine number
34 35 36
halproc		#	4			;processor type
halboard	#	4			;board Type
halrevision	#	4			;board revision
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
machinename	#	32
;store for logical addresses
logicalstore	#	4*8			;only 6 used atm
logicalstore1	#	4
logicalsram	#	4
;pi pull up/down
pipullen	#	32
pipullud	#	32
;i2cprotect flag
i2cprotect	#	4
;i2c gpio info store
i2clowgpio	#	4			;lowest available pin number
i2chighgpio	#	4			;highest
;i2c buffers
i2csend		#	4*8
i2cdata		#	4*8
i2creturn	#	4*8
;flash stuff
flashcount	*	6			;max GPIOs/32
flashflags	#	4*flashcount		;are we a flash ?
flashmark	#	32*flashcount		;on time
flashspace	#	32*flashcount		;off time
flashstate	#	32*flashcount		;present count

padding		#	4
;--- for string displaying ----------Memory cleared upto here
MainTemp	#	&20
;copy of GPIO tables
gpiotablecopy	#	4*((8*8)+(4*8))		;enough for i2c as well
;cofig data space
configdata	#	((6*32)+(16*8)+32)	;space for all gpio (and i2c) pins

RMAlimit	*	:INDEX: @
;*************************** SWI bits **************************************

Error_block	*	&0081DD20
Error_block_end	*	&0081DD2F
SWI_base	*	&00058F80


;*************************** Constants **************************************
;physical map locations
GPIO_1		*	&48310000
GPIO_2		*	&49050000
GPIO_3		*	&49052000
GPIO_4		*	&49054000
GPIO_5		*	&49056000
GPIO_6		*	&49058000
mapsize		*	&200

;physical for control registers for GPIO's
PADCONF_1	*	&48002000
padsize		*	&B00

;sram
sramstart	*	&40200000
sramsize	*	&00010000

;interupt line mapping
GPIO_1_int	*	29
GPIO_2_int	*	30
GPIO_3_int	*	31
GPIO_4_int	*	32
GPIO_5_int	*	33
GPIO_6_int	*	34

;gpio-controlreg map physical Xm use &0 to protect the register
C_gpio_0	*	&1E0
C_gpio_1	*	&A06
C_gpio_2	*	&A0A
C_gpio_3	*	&A0C
C_gpio_4	*	&A0E
C_gpio_5	*	&A10
C_gpio_6	*	&A12
C_gpio_7	*	&A14
C_gpio_8	*	&A16
C_gpio_9	*	&A18
C_gpio_10	*	&A1A
C_gpio_11	*	&A24
C_gpio_12	*	&5D8
C_gpio_13	*	&5DA
C_gpio_14	*	&5DC
C_gpio_15	*	&5DE
C_gpio_16	*	&5E0
C_gpio_17	*	&5E2
C_gpio_18	*	&5E4
C_gpio_19	*	&5E6
C_gpio_20	*	&5E8
C_gpio_21	*	&5EA
C_gpio_22	*	&5EC
C_gpio_23	*	&5EE
C_gpio_24	*	&5F0
C_gpio_25	*	&5F2
C_gpio_26	*	&5F4
C_gpio_27	*	&5F6
C_gpio_28	*	&5F8
C_gpio_29	*	&5FA
C_gpio_30	*	&A08
C_gpio_31	*	&A26
C_gpio_32	*	&0	;&238	;INPUT ONLY, NOT AVAILABLE?
C_gpio_33	*	&0	;NOT AVAILABLE ?
C_gpio_34	*	&07A
C_gpio_35	*	&07C
C_gpio_36	*	&07E
C_gpio_37	*	&080
C_gpio_38	*	&082
C_gpio_39	*	&084
C_gpio_40	*	&086
C_gpio_41	*	&088
C_gpio_42	*	&08A
C_gpio_43	*	&08C
C_gpio_44	*	&09E
C_gpio_45	*	&0A0
C_gpio_46	*	&0A2
C_gpio_47	*	&0A4
C_gpio_48	*	&0A6
C_gpio_49	*	&0A8
C_gpio_50	*	&0AA
C_gpio_51	*	&0AC
C_gpio_52	*	&0B0
C_gpio_53	*	&0B2
C_gpio_54	*	&0B4
C_gpio_55	*	&0B6
C_gpio_56	*	&0B8
C_gpio_57	*	&0BA
C_gpio_58	*	&0BC
C_gpio_59	*	&0BE
C_gpio_60	*	&0C6
C_gpio_61	*	&0C8
C_gpio_62	*	&0CA
C_gpio_63	*	&0CE
C_gpio_64	*	&0D0
C_gpio_65	*	&0D2
C_gpio_66	*	&0D4
C_gpio_67	*	&0D6
C_gpio_68	*	&0D8
C_gpio_69	*	&0DA
C_gpio_70	*	&0DC
C_gpio_71	*	&0DE
C_gpio_72	*	&0E0
C_gpio_73	*	&0E2
C_gpio_74	*	&0E4
C_gpio_75	*	&0E6
C_gpio_76	*	&0E8
C_gpio_77	*	&0EA
C_gpio_78	*	&0EC
C_gpio_79	*	&0EE
C_gpio_80	*	&0F0
C_gpio_81	*	&0F2
C_gpio_82	*	&0F4
C_gpio_83	*	&0F6
C_gpio_84	*	&0F8
C_gpio_85	*	&0FA
C_gpio_86	*	&0FC
C_gpio_87	*	&0FE
C_gpio_88	*	&100
C_gpio_89	*	&102
C_gpio_90	*	&104
C_gpio_91	*	&106
C_gpio_92	*	&108
C_gpio_93	*	&10A
C_gpio_94	*	&10C
C_gpio_95	*	&10E
C_gpio_96	*	&110
C_gpio_97	*	&112
C_gpio_98	*	&114
203 204
C_gpio_99	*	&116+input_only	;INPUT ONLY
C_gpio_100	*	&118+input_only	;INPUT ONLY
205 206 207 208
C_gpio_101	*	&11A
C_gpio_102	*	&11C
C_gpio_103	*	&11E
C_gpio_104	*	&120
209 210 211 212
C_gpio_105	*	&122+input_only	;INPUT ONLY
C_gpio_106	*	&124+input_only	;INPUT ONLY
C_gpio_107	*	&126+input_only	;INPUT ONLY
C_gpio_108	*	&128+input_only	;INPUT ONLY
213 214 215
C_gpio_109	*	&12A
C_gpio_110	*	&12C
C_gpio_111	*	&12E
216 217 218 219
C_gpio_112	*	&134+input_only	;INPUT ONLY
C_gpio_113	*	&136+input_only	;INPUT ONLY
C_gpio_114	*	&138+input_only	;INPUT ONLY
C_gpio_115	*	&13A+input_only	;INPUT ONLY
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
C_gpio_116	*	&13C
C_gpio_117	*	&13E
C_gpio_118	*	&140
C_gpio_119	*	&142
C_gpio_120	*	&144
C_gpio_121	*	&146
C_gpio_122	*	&148
C_gpio_123	*	&14A
C_gpio_124	*	&14C
C_gpio_125	*	&14E
C_gpio_126	*	&132
C_gpio_127	*	&0	;&A54	;different on35xx
C_gpio_128	*	&0	;&A58	;different on35xx
C_gpio_129	*	&0	;&A5A	;different on35xx
C_gpio_130	*	&158
C_gpio_131	*	&15A
C_gpio_132	*	&15C
C_gpio_133	*	&15E
C_gpio_134	*	&160
C_gpio_135	*	&162
C_gpio_136	*	&164
C_gpio_137	*	&166
C_gpio_138	*	&168
C_gpio_139	*	&16A
C_gpio_140	*	&16C
C_gpio_141	*	&16E
C_gpio_142	*	&170
C_gpio_143	*	&172
C_gpio_144	*	&174
C_gpio_145	*	&176
C_gpio_146	*	&178
C_gpio_147	*	&17A
C_gpio_148	*	&17C
C_gpio_149	*	&17E
C_gpio_150	*	&180
C_gpio_151	*	&182
C_gpio_152	*	&184
C_gpio_153	*	&186
C_gpio_154	*	&188
C_gpio_155	*	&18A
C_gpio_156	*	&18C
C_gpio_157	*	&18E
C_gpio_158	*	&190
C_gpio_159	*	&192
C_gpio_160	*	&194
C_gpio_161	*	&196
C_gpio_162	*	&198
C_gpio_163	*	&19A
C_gpio_164	*	&19C
C_gpio_165	*	&19E
C_gpio_166	*	&1A0
C_gpio_167	*	&130
C_gpio_168	*	&1BE
C_gpio_169	*	&1B0
C_gpio_170	*	&1C6
C_gpio_171	*	&1C8
C_gpio_172	*	&1CA
C_gpio_173	*	&1CC
C_gpio_174	*	&1CE
C_gpio_175	*	&1D0
C_gpio_176	*	&1D2
C_gpio_177	*	&1D4
C_gpio_178	*	&1D6
C_gpio_179	*	&1D8
C_gpio_180	*	&1DA
C_gpio_181	*	&1DC
C_gpio_182	*	&1DE
C_gpio_183	*	&1C0
C_gpio_184	*	&1C2
C_gpio_185	*	&1C4
C_gpio_186	*	&1E2
C_gpio_187	*	&0	;&23A	;INPUT ONLY NOT AVAILABLE ?
C_gpio_188	*	&1B2
C_gpio_189	*	&1B4
C_gpio_190	*	&1B6
C_gpio_191	*	&1B8

top_gpio	*	191


;gpio pin numbers we need for connectors
gpio_0		*	0
gpio_1		*	1
gpio_2		*	2
gpio_3		*	3
gpio_4		*	4
gpio_5		*	5
gpio_6		*	6
gpio_7		*	7
gpio_8		*	8
gpio_9		*	9
gpio_10		*	10
gpio_11		*	11
gpio_12		*	12
gpio_13		*	13
gpio_14		*	14
gpio_15		*	15
gpio_16		*	16
gpio_17		*	17
gpio_18		*	18
gpio_19		*	19
gpio_20		*	20
gpio_21		*	21
gpio_22		*	22
gpio_23		*	23
gpio_24		*	24
gpio_25		*	25
gpio_26		*	26
gpio_27		*	27
gpio_28		*	28
gpio_29		*	29
gpio_30		*	30
gpio_31		*	31
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
gpio_32		*	32
gpio_33		*	33
gpio_34		*	34
gpio_35		*	35
gpio_36		*	36
gpio_37		*	37
gpio_38		*	38
gpio_39		*	39
gpio_40		*	40
gpio_41		*	41
gpio_42		*	42
gpio_43		*	43
gpio_44		*	44
gpio_45		*	45
gpio_46		*	46
gpio_47		*	47
gpio_48		*	48
gpio_49		*	49
gpio_50		*	50
gpio_51		*	51
gpio_52		*	52
gpio_53		*	53
gpio_54		*	54
gpio_55		*	55
gpio_56		*	56
358
gpio_57		*	57
359 360 361 362 363
gpio_58		*	58
gpio_59		*	59
gpio_61		*	61
gpio_64		*	64
gpio_65		*	65
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407
gpio_66		*	66
gpio_67		*	67
gpio_68		*	68
gpio_69		*	69
gpio_70		*	70
gpio_71		*	71
gpio_72		*	72
gpio_73		*	73
gpio_74		*	74
gpio_75		*	75
gpio_76		*	76
gpio_77		*	77
gpio_78		*	78
gpio_79		*	79
gpio_80		*	80
gpio_81		*	81
gpio_82		*	82
gpio_83		*	83
gpio_84		*	84
gpio_85		*	85
gpio_86		*	86
gpio_87		*	87
gpio_88		*	88
gpio_89		*	89
gpio_90		*	90
gpio_91		*	91
gpio_92		*	92
gpio_93		*	93
gpio_94		*	94
gpio_95		*	95
gpio_96		*	96
gpio_97		*	97
gpio_99		*	99		;INPUT ONLY
gpio_100	*	100		;INPUT ONLY
gpio_101	*	101
gpio_102	*	102
gpio_103	*	103
gpio_104	*	104
gpio_105	*	105		;INPUT ONLY
gpio_106	*	106		;INPUT ONLY
gpio_107	*	107		;INPUT ONLY
gpio_108	*	108		;INPUT ONLY
gpio_109	*	109
gpio_110	*	110
408 409
gpio_113	*	113
gpio_121	*	121
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426
gpio_130	*	130
gpio_131	*	131
gpio_132	*	132
gpio_133	*	133
gpio_134	*	134
gpio_135	*	135
gpio_136	*	136
gpio_137	*	137
gpio_138	*	138
gpio_139	*	139
gpio_140	*	140
gpio_141	*	141
gpio_142	*	142
gpio_143	*	143
gpio_144	*	144
gpio_145	*	145
gpio_146	*	146
427
gpio_147	*	147
428 429 430 431 432
gpio_148	*	148
gpio_149	*	149
gpio_150	*	150
gpio_151	*	151
gpio_153	*	153
433
gpio_155	*	155
434 435 436 437 438 439 440 441 442
gpio_156	*	156
gpio_157	*	157
gpio_158	*	158
gpio_159	*	159
gpio_160	*	160
gpio_161	*	161
gpio_162	*	162
gpio_163	*	163
gpio_164	*	164
443 444
gpio_165	*	165
gpio_166	*	166
445 446 447 448 449 450 451 452
gpio_167	*	167
gpio_168	*	168
gpio_170	*	170
gpio_171	*	171
gpio_172	*	172
gpio_173	*	173
gpio_174	*	174
gpio_177	*	177
453
gpio_181	*	181
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614
gpio_183	*	183
gpio_184	*	184
gpio_185	*	185
gpio_186	*	186

;GPIO system registers
GPIO_SYSCONFIG          *       &010
GPIO_SYSTATUS           *       &014
GPIO_IRQSTATUS1		*	&018
GPIO_IRQENABLE1		*	&01C
GPIO_WAKEUPENABLE       *       &020
GPIO_IRQSTATUS2         *       &028
GPIO_IRQENABLE2         *       &02C
GPIO_CTRL               *       &030
GPIO_OE			*	&034
GPIO_DATAIN             *       &038
GPIO_DATAOUT            *       &03C
GPIO_LEVELDETECT0       *       &040
GPIO_LEVELDETECT1       *       &044
GPIO_RISINGDETECT       *       &048
GPIO_FALLINGDETECT      *       &04C
GPIO_DEBOUNCEENABLE     *       &050
GPIO_DEBOUNCETIME       *       &054
GPIO_CLEARIRQENABLE1    *       &060
GPIO_SETIRQENABLE1      *       &064
GPIO_CLEARIRQENABLE2    *       &070
GPIO_SETIRQENABLE2      *       &074
GPIO_CLEARWKUENA        *       &080
GPIO_SETWKUENA          *       &084
GPIO_CLEARDATAOUT	*	&090
GPIO_SETDATAOUT		*	&094

;Modes for system control
mode0		*	0		;
mode1		*	1		;
mode2		*	2		;
mode3		*	3		;
mode4		*	4		;
mode5		*	5		;
mode6		*	6		;
mode7		*	7		;

;bit used in system control
pullenable	*	1:SHL:3		;
pulldisable	*	0:SHL:3		;
pullup		*	1:SHL:4		;
pulldown	*	0:SHL:4		;
inputenable	*	1:SHL:8		;
inputdisable	*	0:SHL:8		;

;GPIO modes
mygpiomode1	*	mode4+pullenable+pullup+inputenable
mygpiomode2	*	mode4+pullenable+pulldown+inputenable
mymode0		*	mode0
mymode1		*	mode1
mymode2		*	mode2
mymode3		*	mode3
safemode	*	mode7

;*************************** Beagle Xm **************************************
M_button	*	gpio_4
M_led0		*	gpio_149
M_led1		*	gpio_150
;i2c on exp
i2c_1		*	gpio_183
i2c_2		*	gpio_168
;i2c on cam
i2c_3		*	gpio_184
i2c_4		*	gpio_185
;uart on exp
uart_rx		*	gpio_143
uart_tx		*	gpio_146
uart_cts	*	gpio_144
uart_rts	*	gpio_145
uart_rx_mode	*	1<<8
uart_tx_mode	*	0<<8
uart_cts_mode	*	0<<8
uart_rts_mode	*	0<<8
;usb on aux
usb1_0		*	gpio_14
usb1_1		*	gpio_15
usb1_2		*	gpio_16
usb1_3		*	gpio_21
usb1_4		*	gpio_18
usb1_5		*	gpio_19
usb1_6		*	gpio_20
usb1_7		*	gpio_17
usb1_nxt	*	gpio_23
usb1_clk	*	gpio_13
usb1_dit	*	gpio_22
usb1_stp	*	gpio_12
usb1_mode	*	3<<8
;mmc on aux
mmc3_0		*	gpio_18
mmc3_1		*	gpio_19
mmc3_2		*	gpio_20
mmc3_3		*	gpio_17
mmc3_4		*	gpio_14
mmc3_5		*	gpio_23
mmc3_6		*	gpio_22
mmc3_7		*	gpio_21
mmc3_cmd	*	gpio_13
mmc3_clk	*	gpio_12
mmc3_mode	*	2<<8
;mmc on exp
mmc2_0		*	gpio_132
mmc2_1		*	gpio_133
mmc2_2		*	gpio_134
mmc2_3		*	gpio_135
mmc2_4		*	gpio_136
mmc2_5		*	gpio_137
mmc2_6		*	gpio_138
mmc2_7		*	gpio_139
mmc2_cmd	*	gpio_131
mmc2_clk	*	gpio_130
mmc2_mode	*	0<<8
;mm on aux
mm1_txen	*	gpio_21
mm1_txdat	*	gpio_16
mm1_txseo	*	gpio_15
mm1_rx		*	gpio_23
mm1_rxrcv	*	gpio_14
mm1_rxdp	*	gpio_12
mm1_mode	*	5<<8

;bitmaps for GPIO pins on headers
expbitmap	*	2_11110000000001111000111111111100
auxbitmap	*	2_00000000011111111111100000000000
cambitmap	*	2_00000000000000000101111111111111

;i2c bus for i2c on exp
i2cbus		*	1
;************************** Beagle Xm end ************************************
;***************************** Devkit ****************************************
dev_button	*	gpio_26
dev_led1	*	gpio_186
dev_led2	*	gpio_163
dev_led3	*	gpio_164
;i2c on exp
dev_i2c_1	*	gpio_184
dev_i2c_2	*	gpio_185
;uart on exp
dev_uart_rx	*	gpio_151
dev_uart_tx	*	gpio_148
dev_uart_cts	*	gpio_150
dev_uart_rts	*	gpio_149
;mmc on exp
dev_mmc2_0	*	gpio_132
dev_mmc2_1	*	gpio_133
dev_mmc2_2	*	gpio_134
dev_mmc2_3	*	gpio_135
dev_mmc2_4	*	gpio_136
dev_mmc2_5	*	gpio_137
dev_mmc2_6	*	gpio_138
dev_mmc2_7	*	gpio_139
dev_mmc2_cmd	*	gpio_131
dev_mmc2_clk	*	gpio_130

;i2c bus for i2c on exp
dev_i2cbus	*	1
;**************************** Devkit end *************************************
615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882
;**************************** Panda ******************************************
;physical map locations
PDGPIO_1		*	&4A310000
PDGPIO_2		*	&48055000
PDGPIO_3		*	&48057000
PDGPIO_4		*	&48059000
PDGPIO_5		*	&4805B000
PDGPIO_6		*	&4805D000

PDPADCONF_1		*	&4A100000

C_PDgpio_0	*	&184
C_PDgpio_1	*	&186
C_PDgpio_2	*	&190
C_PDgpio_3	*	&192
C_PDgpio_4	*	&048
C_PDgpio_5	*	&050+input_only
C_PDgpio_6	*	&054
C_PDgpio_7	*	&05A
C_PDgpio_8	*	&05C
C_PDgpio_9	*	&068
C_PDgpio_10	*	&06A
C_PDgpio_11	*	&1AE
C_PDgpio_12	*	&1B0
C_PDgpio_13	*	&1B2
C_PDgpio_14	*	&1B4
C_PDgpio_15	*	&1B6
C_PDgpio_16	*	&1B8
C_PDgpio_17	*	&1BA
C_PDgpio_18	*	&1BC
C_PDgpio_19	*	&1BE
C_PDgpio_20	*	&1C0
C_PDgpio_21	*	&1C2
C_PDgpio_22	*	&1C4
C_PDgpio_23	*	&1C6
C_PDgpio_24	*	&1C8
C_PDgpio_25	*	&1CA
C_PDgpio_26	*	&1CC
C_PDgpio_27	*	&1CE
C_PDgpio_28	*	&1D0
C_PDgpio_29	*	&066
C_PDgpio_30	*	&056
C_PDgpio_31	*	&058
C_PDgpio_32	*	&050
C_PDgpio_33	*	&052
C_PDgpio_34	*	&054
C_PDgpio_35	*	&056
C_PDgpio_36	*	&058
C_PDgpio_37	*	&05A
C_PDgpio_38	*	&05C
C_PDgpio_39	*	&05E
C_PDgpio_40	*	&060
C_PDgpio_41	*	&062
C_PDgpio_42	*	&064
C_PDgpio_43	*	&066
C_PDgpio_44	*	&068
C_PDgpio_45	*	&06A
C_PDgpio_46	*	&06C
C_PDgpio_47	*	&06E
C_PDgpio_48	*	&070
C_PDgpio_49	*	&072
C_PDgpio_50	*	&074
C_PDgpio_51	*	&076
C_PDgpio_52	*	&078
C_PDgpio_53	*	&07A
C_PDgpio_54	*	&07C
C_PDgpio_55	*	&07E
C_PDgpio_56	*	&080
C_PDgpio_57	*	&082
C_PDgpio_58	*	&084
C_PDgpio_59	*	&086
C_PDgpio_60	*	&088
C_PDgpio_61	*	&08A
C_PDgpio_62	*	&08C
C_PDgpio_63	*	&098
C_PDgpio_64	*	&09A
C_PDgpio_65	*	&09C
C_PDgpio_66	*	&09E
C_PDgpio_67	*	&0A0+input_only
C_PDgpio_68	*	&0A2+input_only
C_PDgpio_69	*	&0A4+input_only
C_PDgpio_70	*	&0A6+input_only
C_PDgpio_71	*	&0A8+input_only
C_PDgpio_72	*	&0AA+input_only
C_PDgpio_73	*	&0AC+input_only
C_PDgpio_74	*	&0AE+input_only
C_PDgpio_75	*	&0B0+input_only
C_PDgpio_76	*	&0B2+input_only
C_PDgpio_77	*	&0B4+input_only
C_PDgpio_78	*	&0B6+input_only
C_PDgpio_79	*	&0B8+input_only
C_PDgpio_80	*	&0BA+input_only
C_PDgpio_81	*	&0BC
C_PDgpio_82	*	&0BE
C_PDgpio_83	*	&0C0
C_PDgpio_84	*	&0C2
C_PDgpio_85	*	&0C4
C_PDgpio_86	*	&0C6
C_PDgpio_87	*	&0C8
C_PDgpio_88	*	&0CA
C_PDgpio_89	*	&0CC
C_PDgpio_90	*	&0CE
C_PDgpio_91	*	&0D0
C_PDgpio_92	*	&0D2
C_PDgpio_93	*	&0D4
C_PDgpio_94	*	&0D6
C_PDgpio_95	*	&0D8
C_PDgpio_96	*	&0DA
C_PDgpio_97	*	&0DC
C_PDgpio_98	*	&0DE
C_PDgpio_99	*	&0E0
C_PDgpio_100	*	&0E2
C_PDgpio_101	*	&0E4
C_PDgpio_102	*	&0E6
C_PDgpio_103	*	&0E8
C_PDgpio_104	*	&0EA
C_PDgpio_105	*	&0EC
C_PDgpio_106	*	&0EE
C_PDgpio_107	*	&0F0
C_PDgpio_108	*	&0F2
C_PDgpio_109	*	&0F4
C_PDgpio_110	*	&0F6
C_PDgpio_111	*	&0F8
C_PDgpio_112	*	&0FA
C_PDgpio_113	*	&0FC
C_PDgpio_114	*	&0FE
C_PDgpio_115	*	&100
C_PDgpio_116	*	&102
C_PDgpio_117	*	&104
C_PDgpio_118	*	&10E
C_PDgpio_119	*	&110
C_PDgpio_120	*	&112
C_PDgpio_121	*	&114
C_PDgpio_122	*	&116
C_PDgpio_123	*	&118
C_PDgpio_124	*	&11A
C_PDgpio_125	*	&11C
C_PDgpio_126	*	&11E
C_PDgpio_127	*	&120
C_PDgpio_128	*	&126
C_PDgpio_129	*	&128
C_PDgpio_130	*	&12A
C_PDgpio_131	*	&12C
C_PDgpio_132	*	&12E
C_PDgpio_133	*	&130
C_PDgpio_134	*	&132
C_PDgpio_135	*	&134
C_PDgpio_136	*	&136
C_PDgpio_137	*	&138
C_PDgpio_138	*	&13A
C_PDgpio_139	*	&13C
C_PDgpio_140	*	&13E
C_PDgpio_141	*	&140
C_PDgpio_142	*	&142
C_PDgpio_143	*	&144
C_PDgpio_144	*	&146
C_PDgpio_145	*	&148
C_PDgpio_146	*	&14A
C_PDgpio_147	*	&14C
C_PDgpio_148	*	&14E
C_PDgpio_149	*	&150
C_PDgpio_150	*	&152
C_PDgpio_151	*	&154
C_PDgpio_152	*	&156
C_PDgpio_153	*	&158
C_PDgpio_154	*	&15A
C_PDgpio_155	*	&15C
C_PDgpio_156	*	&15E
C_PDgpio_157	*	&160
C_PDgpio_158	*	&162
C_PDgpio_159	*	&164
C_PDgpio_160	*	&166
C_PDgpio_161	*	&168
C_PDgpio_162	*	&16A
C_PDgpio_163	*	&16C
C_PDgpio_164	*	&16E
C_PDgpio_165	*	&170
C_PDgpio_166	*	&172
C_PDgpio_167	*	&174
C_PDgpio_168	*	&176
C_PDgpio_169	*	&178
C_PDgpio_170	*	&17A
C_PDgpio_171	*	&17C
C_PDgpio_172	*	&17E
C_PDgpio_173	*	&180
C_PDgpio_174	*	&182
C_PDgpio_175	*	&184
C_PDgpio_176	*	&186
C_PDgpio_177	*	&188
C_PDgpio_178	*	&18A
C_PDgpio_179	*	&0
C_PDgpio_180	*	&0
C_PDgpio_181	*	&19A
C_PDgpio_182	*	&19C
C_PDgpio_183	*	&1A0
C_PDgpio_184	*	&1A2
C_PDgpio_185	*	&1A4
C_PDgpio_186	*	&1A6
C_PDgpio_187	*	&1A8
C_PDgpio_188	*	&1AA
C_PDgpio_189	*	&1AC
C_PDgpio_190	*	&1D2
C_PDgpio_191	*	&1D4

;i2c
PD_i2c_1	*	gpio_130
PD_i2c_2	*	gpio_131
PD_i2c_3	*	gpio_132
PD_i2c_4	*	gpio_133
;user
PDES_button	*	gpio_113
PDES_ledD1	*	gpio_110
PDES_ledD2	*	gpio_8

PD_button	*	gpio_121
PD_ledD1	*	gpio_7
PD_ledD2	*	gpio_8

;mmc
PD_mmc1_0	*	gpio_32
PD_mmc1_1	*	gpio_33
PD_mmc1_2	*	gpio_34
PD_mmc1_3	*	gpio_35
PD_mmc1_4	*	gpio_36
PD_mmc1_5	*	gpio_37
PD_mmc1_6	*	gpio_38
PD_mmc1_7	*	gpio_39
PD_mmc1_cmd	*	gpio_55
PD_mmc1_clk	*	gpio_56
PD_mmc1_mode	*	5<<8

;uart
PD_uart4_rx	*	gpio_155
PD_uart4_tx	*	gpio_156
PD_uart4_mode	*	0


omap4_GPIO_SYSCONFIG		*	&010
omap4_GPIO_SYSSTATUS		*	&114
omap4_GPIO_IRQSTATUS1		*	&118
omap4_GPIO_IRQENABLE1		*	&11c
omap4_GPIO_WAKE_EN		*	&120
omap4_GPIO_IRQSTATUS2		*	&128
omap4_GPIO_IRQENABLE2		*	&12c
omap4_GPIO_CTRL			*	&130
omap4_GPIO_OE			*	&134
omap4_GPIO_DATAIN		*	&138
omap4_GPIO_DATAOUT		*	&13c
omap4_GPIO_LEVELDETECT0		*	&140
omap4_GPIO_LEVELDETECT1		*	&144
omap4_GPIO_RISINGDETECT		*	&148
omap4_GPIO_FALLINGDETECT	*	&14c
omap4_GPIO_DEBOUNCE_EN		*	&150
omap4_GPIO_DEBOUNCE_VAL		*	&154
omap4_GPIO_CLEARIRQENABLE1	*	&160
omap4_GPIO_SETIRQENABLE1	*	&164
omap4_GPIO_CLEARIRQENABLE2	*       &170
omap4_GPIO_SETIRQENABLE2	*       &174
omap4_GPIO_CLEARWKUENA		*	&180
omap4_GPIO_SETWKUENA		*	&184
omap4_GPIO_CLEARDATAOUT		*	&190
omap4_GPIO_SETDATAOUT		*	&194

PDexpbitmap	*	2_00000000000000000000000000000000
PDauxbitmap	*	2_00000000000000000000000000000000
PDcambitmap	*	2_00000000000000000000000000000000

;***************************** Panda end ****************************************
883 884 885
;***************************** Raspberry ****************************************
;pi_GPIO_Base	*	&7E200000
pi_GPIO_Base	*	&20200000
886
piMk2_GPIO_Base	*	&3F200000
887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986
		^	0
pi_GPSEL0	#	4
pi_GPSEL1	#	4
pi_GPSEL2	#	4
pi_GPSEL3	#	4
pi_GPSEL4	#	4
pi_GPSEL5	#	4
pi_res1		#	4
pi_GPSET0	#	4
pi_GPSET1	#	4
pi_res2		#	4
pi_GPCLR0	#	4
pi_GPCLR1	#	4
pi_res3		#	4
pi_GPLEV0	#	4
pi_GPLEV1	#	4
pi_res4		#	4
pi_GPEDS0	#	4
pi_GPEDS1	#	4
pi_res5		#	4
pi_GPREN0	#	4
pi_GPREN1	#	4
pi_res6		#	4
pi_GPFEN0	#	4
pi_GPFEN1	#	4
pi_res7		#	4
pi_GPHEN0	#	4
pi_GPHEN1	#	4
pi_res8		#	4
pi_GPLEN0	#	4
pi_GPLEN1	#	4
pi_res9		#	4
pi_GPAREN0	#	4
pi_GPAREN1	#	4
pi_res10	#	4
pi_GPAFEN0	#	4
pi_GPAFEN1	#	4
pi_res11	#	4
pi_GPPUD	#	4
pi_GPPUDCLK0	#	4
pi_GPPUDCLK1	#	4
pi_res12	#	4
pi_test		#	4


pi_FSEL0	*	&000+0
pi_FSEL1	*	&000+3
pi_FSEL2	*	&000+6
pi_FSEL3	*	&000+9
pi_FSEL4	*	&000+12
pi_FSEL5	*	&000+15
pi_FSEL6	*	&000+18
pi_FSEL7	*	&000+21
pi_FSEL8	*	&000+24
pi_FSEL9	*	&000+27
pi_FSEL10	*	&100+0
pi_FSEL11	*	&100+3
pi_FSEL12	*	&100+6
pi_FSEL13	*	&100+9
pi_FSEL14	*	&100+12
pi_FSEL15	*	&100+15
pi_FSEL16	*	&100+18
pi_FSEL17	*	&100+21
pi_FSEL18	*	&100+24
pi_FSEL19	*	&100+27
pi_FSEL20	*	&200+0
pi_FSEL21	*	&200+3
pi_FSEL22	*	&200+6
pi_FSEL23	*	&200+9
pi_FSEL24	*	&200+12
pi_FSEL25	*	&200+15
pi_FSEL26	*	&200+18
pi_FSEL27	*	&200+21
pi_FSEL28	*	&200+24
pi_FSEL29	*	&200+27
pi_FSEL30	*	&300+0
pi_FSEL31	*	&300+3
pi_FSEL32	*	&300+6
pi_FSEL33	*	&300+9
pi_FSEL34	*	&300+12
pi_FSEL35	*	&300+15
pi_FSEL36	*	&300+18
pi_FSEL37	*	&300+21
pi_FSEL38	*	&300+24
pi_FSEL39	*	&300+27
pi_FSEL40	*	&400+0
pi_FSEL41	*	&400+3
pi_FSEL42	*	&400+6
pi_FSEL43	*	&400+9
pi_FSEL44	*	&400+12
pi_FSEL45	*	&400+15
pi_FSEL46	*	&400+18
pi_FSEL47	*	&400+21
pi_FSEL48	*	&400+24
pi_FSEL49	*	&400+27
pi_FSEL50	*	&500+0
pi_FSEL51	*	&500+3
pi_FSEL52	*	&500+6
pi_FSEL53	*	&500+9

987
pi_top_gpio	*	45
988

989 990 991
;user
Pi_LED		*	gpio_16
Com_LED		*	gpio_47
992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022
;i2c on exp
rpi_i2c0_1	*	gpio_1
rpi_i2c0_2	*	gpio_0
rpi_i2c1_1	*	gpio_3
rpi_i2c1_2	*	gpio_2
;uart on exp
rpi_uart0_rx	*	gpio_15
rpi_uart0_tx	*	gpio_14
pi_uart0	*	Pi_Alt0<<8
;spio on exp
rpi_spio0_ce1	*	gpio_7
rpi_spio0_ce0	*	gpio_8
rpi_spio0_miso	*	gpio_9
rpi_spio0_mosi	*	gpio_10
rpi_spio0_sclk	*	gpio_11
pi_spio0	*	Pi_Alt0<<8

Pi_GPIOIn	*	0
Pi_GPIOOut	*	1
Pi_Alt0		*	4
Pi_Alt1		*	5
Pi_Alt2		*	6
Pi_Alt3		*	7
Pi_Alt4		*	2
Pi_Alt5		*	3

Pi_PUDOff	*	0
Pi_PUDEnDown	*	1
Pi_PUDEnUp	*	2


1023 1024 1025
;pi_exp_bitmask		*	2_00000011111001101100111110010011
;pi_com_bitmask1	*	2_11111111111111111111111111111111
;pi_com_bitmask2	*	2_00000000001111111111111111111111
1026 1027 1028 1029 1030 1031 1032 1033 1034 1035

;i2c bus for i2c on exp
pi_i2cbusr1	*	0
pi_i2cbusr2	*	0
;**************************** Raspberry end *************************************
;dummy hal
		^	0
hal_dummy	#	1

		^	0
1036 1037
dummy		#	1
dummynext	#	1
1038

1039 1040
;If new boards are added, change revision (from Hdr.GPIODevice) to the new last one and add a table!!!
;this gives internal machine type....
1041 1042
		^	0
hal_rev_dummy	#	dummynext
1043 1044 1045 1046 1047
hal_rev_beagle	#	GPIORevision_BeagleBoard_xMC+1
hal_rev_dev	#	GPIORevision_DevKit8000_Unknown+1
hal_rev_igep	#	GPIORevision_IGEPv2_C+1
hal_rev_pandora	#	GPIORevision_Pandora_Unknown+1
hal_rev_panda	#	GPIORevision_PandaES+1
ROOL's avatar
ROOL committed
1048
	[ {FALSE}
1049
hal_rev_pi	#	GPIORevision_RaspberryPi_Mk2_B_1+1
ROOL's avatar
ROOL committed
1050
	]
1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086

;offsets into table
			^	0
control_reg		#	4
exp_pins		#	4
aux_pins		#	4
camera_pins		#	4
user_pins		#	4
i2c_pins		#	4
widebit_pins		#	4
uart_pins		#	4
usb_pins		#	4
mmc_aux_pins		#	4
mmc_exp_pins		#	4
mm_pins			#	4
srambase		#	4
map			#	4
physical_table		#	4
boardnamestring		#	4

maxtable		#	:INDEX: @

tablesize		*	6	;table size of 16 locations

;config bits
conf_io		*	1<<12
conf_updown	*	1<<13
conf_inenable	*	1<<14
conf_extended	*	1<<15	;if set bits below are used
conf_lv0	*	1<<16
conf_lv1	*	1<<17
conf_rising	*	1<<18
conf_falling	*	1<<19
conf_debounce	*	1<<20
conf_irq1	*	1<<21
conf_irq2	*	1<<22
1087 1088

input_only	*	1<<15
1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120
;wide offsets
		^	0
wide_exp	#	4
wide_exppin	#	4
wide_aux	#	4
wide_auxpin	#	4
wide_cam	#	4
wide_campin	#	4

;i2c gpio bits
i2c_bus1	*	0<<24	;bus 1
i2c_bus2	*	1<<24	;bus 2
i2c_bus3	*	1<<25	;bus 3
i2c_bus4	*	3<<24	;bus 4
i2c_flag	*	1<<31	;test flag
i2c_base	*	&40	;base address of device
i2c_max		*	&4C	;last device addressable

;i2c gpio chip registers
mcpiodira	*	0
mcpipola	*	2
mcpintena	*	4
mcpdefvala	*	6
mcpicona	*	8
mcpiocona	*	&A
mcpgppua	*	&C
mcpintfa	*	&E
mcpintcapa	*	&10
mcpgpioa	*	&12
mcpolata	*	&14
mcpbase		*	&40

1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150
;proc reg table offsets
			^	0
proc_sysconfig		#	2
proc_sysstatus		#	2
proc_irqstatus1		#	2
proc_irqenable1		#	2
proc_wakeupenable	#	2
proc_irqstatus2		#	2
proc_irqenable2		#	2
proc_ctrl		#	2
proc_oe			#	2
proc_datain		#	2
proc_dataout		#	2
proc_leveldetect0	#	2
proc_leveldetect1	#	2
proc_risingdetect	#	2
proc_fallingdetect	#	2
proc_debounceenable	#	2
proc_debouncetime	#	2
proc_clearirqenable1	#	2
proc_setirqenable1	#	2
proc_clearirqenable2	#	2
proc_setirqenable2	#	2
proc_clearwkuena	#	2
proc_setwkuena		#	2
proc_cleardataout	#	2
proc_setdataout		#	2

proc_tableshift		*	6

1151
	END