linuxer
    @么西QQ:欢迎欢迎,任何问题都可以在这里提出,大家一起交流
    蓝牙协议分析(1)_基本概念  发表时间:2014-07-28 18:06
    linuxer
    @forion:也行,我都想先暂停GPIO subsystem的描述了,这部分比较简单,没有什么好写的,等以后有心情再写。中断子系统的确值得一写,有很多值得品味的东西,之前写的GIC的代码分析文档比较孤单,如果再给上2~3篇文档,中断子系统可以描述的比较清楚了。
    linux内核中的GPIO系统之(2):pin control subsystem  发表时间:2014-07-28 18:04
    forion
    @linuxer:电源管理涉及的东西太多了,我估计你要是写也要搞很久,能不能先把中断子系统写完呢?哈哈,因为最近在搞这几个方面。ps:因为我之前搞kernel里面与体系架构无关的东西稍微多一点,具体深入到driver层次,看的代码少一点。最近在搞drive的模块,所以也跟着您写的文档一点点的了解,各个driver子系统的架构以及代码,以及硬件特性。所以如果可以的话,先写完中断子系统如何?:)
    linux内核中的GPIO系统之(2):pin control subsystem  发表时间:2014-07-28 16:06
    linuxer
    @forion:你问了一个看似简单,实际上比较复杂的问题。我们可以把系统启动分成若干段: 1、HW power up sequence。这是和各个pin的default状态相关的 2、ROM代码过程 3、bootloader过程 4、OS kernel各个driver初始化过程 如何在上述的过程初始化全部pin的状态需要考虑的factor包括: 1、不影响UI表现 2、电源管理的考虑 3、代码整洁,易于维护 有些pin是连接到一些UI相关的硬件(例如LCD背光控制,LED灯),对这些pin要格外的关注,这有可能导致一些软件无法解决的问题,例如我们用某个pin来控制LCD的backlight,但是该pin上电的缺省状态是ouput,high,这样就会打亮LCD背光,但是,由于软件还没有机会参与控制,LCD模组的显示是完全随机的。我们实际希望的行为当然是初始化好了LCD的内容(比如显示个公司的logo什么的)再打开LCD的背光,但是,硬件行为就是这样,即便是我们在bootloader中的最开始的代码就将该pin 设为低电平,用户也可以感知到LCD的背光亮了一下又灭了,用户体验非常不好。当然,这是硬件工程师在进行硬件设计的时候就要考虑的问题。 在不影响用户体验的前提下,其他的因素可以酌情考虑。有些人喜欢在bootloader阶段让软件初始化所有的pin的状态(称之为safe state)。例如:系统中有一个RF模块,一个pin可以控制RF模块的供电,那么如果能够在bootloader中尽快的关闭这个RF模块,实际上这样是对功耗是有利的,在AP需要的时候才控制该pin,打开RF模块的供电。当然,从软件工程师的角度看,我当然希望一个driver相关的内容都锁定在一个特定的区域内,比较所有和某个driver控制的内容都在linux 的driver中,而不是散布在系统中的各个地方。 顺便说一句,实际上pin control是个系统的东西,除了和各个driver交互,还和内核中设备模型、电源管理模块有关系,比GPIO subsystem复杂多了。这个星期如果有时间我要重新整理一下上周发布的三篇文档,有时候写的太匆忙,欠考虑(这违背了蜗窝的原则,慢下来,享受科技)。 pin power domain是电源管理的一部分,电源管理是个庞然大物,如果你有兴趣,我先把这部分排入下月的schedule好了
    linux内核中的GPIO系统之(2):pin control subsystem  发表时间:2014-07-28 11:38
    forion
    hi linuxer 请教个问题,一般来说u boot会对一部分或者全部的pin初始化,然后进入kernel又会chongx初始化还是只是初始化u boot没有初始化的部分。 另外是不是要讲一下pin power domain的概念,因为调试驱动的时候经常遇到比如 touch panel i2c 是1.8v 还是2.8v电压domain这样的问题。
    linux内核中的GPIO系统之(2):pin control subsystem  发表时间:2014-07-27 20:41
    么西QQ
    一个对技术无比热爱的大二学生,最近在做蓝呀通讯,希望可以和你交流,哈哈哈
    蓝牙协议分析(1)_基本概念  发表时间:2014-07-27 09:53
    无名
    路过,支持一下博主。
    关于蜗窝  发表时间:2014-07-25 11:15
    linuxer
    @foiron:多谢你的解释,我看了看request_irq的代码,发现: ++++++++++++++++++++++++++++ /* Setup the type (level, edge polarity) if configured: */ if (new->flags & IRQF_TRIGGER_MASK) { ret = __irq_set_trigger(desc, irq, new->flags & IRQF_TRIGGER_MASK); if (ret) goto out_mask; } ++++++++++++++++++++++++++++++++ 的确,如果不传递相关的trigger flag,request_irq会略过设定trigger部分的内容。当然驱动程序也可以在request irq之前调用irq_set_irq_type设定触发类型,当然,也有可能是hardware/firmware已经处理,具体的driver不需要关注。
    GIC驱动代码分析(废弃)  发表时间:2014-07-23 11:50
    linuxer
    @forion:你说的是GIC吗?因为interrupts这个属性是具体的interrupt controller解释的。对于GIC,interrupt属性解释如下: +++++++++++++++++++++++ The 3rd cell is the flags, encoded as follows: bits[3:0] trigger type and level flags. 1 = low-to-high edge triggered 2 = high-to-low edge triggered 4 = active high level-sensitive 8 = active low level-sensitive bits[15:8] PPI interrupt cpu mask. Each bit corresponds to each of the 8 possible cpus attached to the GIC. A bit set to '1' indicated the interrupt is wired to that CPU. Only valid for PPI interrupts. +++++++++++++++++++++++++++ 其实并没有规定第三个cell数值等于0的行为。的确,在include/dt-bindings/interrupt-controller/irq.h文件中,0对应的就是IRQ_TYPE_NONE。 在具体的设备初始化的时候,会解析interrupt属性,然后调用interrupt subsystem的接口(例如request_irq、irq_set_irq_type)进行具体的设定。request_irq和irq_set_irq_type是殊路同归,最后都是调用了interrupt controller driver对应的set type函数,对于gic,这个函数是gic_set_type,不过从代码看起来并没有处理IRQ_TYPE_NONE,我大概过了一下interrupt subsystem的代码,也没有看到相关的处理,看来的确应该是具体的驱动程序自己处理了。当然,我不认为这是合理的处理方式。
    GIC驱动代码分析(废弃)  发表时间:2014-07-23 11:41
    linuxer
    @foiron:一共五篇: 1、框架 2、pin control subsystem 3、pin controller driver 4、GPIO subsystem 5、GPIO controller driver 其实对于新的内核的机制,我也是边看代码边理解,大家一起学习吧

共7074条692/708上一页 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 34 35 36 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 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 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 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 358 359 360 361 362 363 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 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 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 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 692693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 下一页
Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog