手順
Port Cは、GPIOのPC6,PC7が割り当てられています。
このピンはシリアル通信用になっています。
cat /sys/kernel/debug/pinctrl/soc:pinctrl@50002000/pinmux-pins
~~省略~~
pin 38 (PC6): device 44003000.serial function af7 group PC6
pin 39 (PC7): device 44003000.serial function af7 group PC7
~~省略~~
.dtbファイルから.dtsファイルを作成する
dtc -I dtb -O dts -o stm32mp135f-coremp135.dts /boot/stm32mp135f-coremp135.dtb
cp stm32mp135f-coremp135.dts custom.dts
custom.dts
の
status =
を
status = "disabled";
に変更する
serial@44003000 {
compatible = "st,stm32h7-uart";
reg = <0x44003000 0x400>;
interrupts-extended = <0x0c 0x1d 0x04>;
clocks = <0x08 0x81>;
resets = <0x08 0x354d>;
wakeup-source;
power-domains = <0x0d>;
status = "okay";<----この行を修正
pinctrl-names = "default\0sleep";
pinctrl-0 = <0x1d>;
pinctrl-1 = <0x1e>;
rx-tx-swap;
phandle = <0x85>;
};
編集したdtsファイルから、dtbファイルを作成し、/bootにコピーする
dtc -I dts -O dtb -o custom.dtb custom.dts
cp custom.dtb /boot
/boot/extlinux/extlinux.conf
の
devicetree /boot/stm32mp135f-coremp135.dtb
この行を
devicetree /boot/custom.dtb
に変更する
label stm32mp135f-coremp135-buildroot
kernel /boot/zImage
devicetree /boot/custom.dtb <----この行を修正
append root=/dev/mmcblk0p5 rw panic=5 quiet rootwait
デバイスを再起動する。
動作確認
次のコマンドでGPIOに出力してみる
root@CoreMP135:/# echo 39 > /sys/class/gpio/export
root@CoreMP135:/# echo out > /sys/class/gpio/PC7/direction
root@CoreMP135:/# echo 0 > /sys/class/gpio/PC7/value
root@CoreMP135:/# echo 1 > /sys/class/gpio/PC7/value
echo 0とした時に、LEDが点灯する事を確認できました