「라즈파이 매거진 2017년 10월호의 확장 보드 HAT를 만들자」를 해 보았다

2662 단어 Raspberrypi3
undefined
라즈파이 매거진의 2017년 10월호의 「확장 보드 HAT를 만들자」의 기사를 해 보았다

책과 같이 하면 도 23과 같이 디바이스 트리 소스를 컴파일해도 도 24와 같이 되지 않았다. spi가 인식되지 않음

이것을 출판사에 문의했다. 그러나 대답은 왔지만 모르겠다는 것이었다.

그 때문에 스스로 대책을 세우기로 했다

3주에 걸쳐 트라이앤 에러의 결과 드디어 생겼다

디바이스 트리 소스를 다음과 같이 하면 spi가 인식되어 dht 커널 드라이버가 움직이도록 할 수 있었다
그림 23의 spi fragment의 방법이 꽤 잘못되었다는 것을 알았다

dht_hat.dts
/dts-v1/;

/ {
    compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";

    fragment@0 {
        target-path = [2f 00];

        __overlay__ {

            dht11@0 {
                compatible = "dht11";
                pinctrl-names = "default";
                pinctrl-0 = <0x1>;
                gpios = <0xdeadbeef 0x4 0x0>;
                status = "okay";
                phandle = <0x2>;
            };
        };
    };

    fragment@1 {
        target = <0xdeadbeef>;

        __overlay__ {

            dht11_pins {
                brcm,pins = <0x4>;
                brcm,function = <0x0>;
                brcm,pull = <0x0>;
                phandle = <0x1>;
            };
        };
    };

    fragment@2 {                 //spi0有効
        target = <0xdeadbeef>;

        __overlay__ {
            cs-gpios = <0x0 0x0>;
            status = "okay";
        };
    };

    fragment@3 {                //spi0有効
        target = <0xdeadbeef>;

        __overlay__ {
            brcm,pins = <0x8 0x7>;
            brcm,function = <0x4>;
        };
    };

    __overrides__ {
        gpiopin = <0x1 0x6272636d 0x2c70696e 0x733a3000 0x2 0x6770696f 0x733a3400>;
    };

    __symbols__ {
        dht11 = "/fragment@0/__overlay__/dht11@0";
        dht11_pins = "/fragment@1/__overlay__/dht11_pins";
    };

    __local_fixups__ {

        fragment@0 {
            __overlay__ {
                dht11@0 {
                    pinctrl-0 = <0x0>;
                };
            };
        };

        __overrides__ {
            gpiopin = <0x0 0x10>;
        };
    };

    __fixups__ {
        gpio = "/fragment@0/__overlay__/dht11@0:gpios:0", "/fragment@1:target:0";
        spi0 = "/fragment@2:target:0";
        spi0_cs_pins = "/fragment@3:target:0";//spi0有効
    };
};


좋은 웹페이지 즐겨찾기