Estamos utilizando MAX14830 (SPI a QUAD Uart). El kit de evaluación MAX14830 está conectado a SPI1 de beaglebone black.
Hemos habilitado el controlador en Linux y hemos escrito DTS para max14830.
en dmesg ttyMAX0-3 si viene pero en / dev no se muestra
[19.787878] spi2.0: ttyMAX0 en E / S 0x0 (irq = 102, base_baud = 230400) es un MAX14830 [19.828950] serial serial0: puerto tty ttyMAX0 registrado [19.879495] spi2.0: ttyMAX1 en I / O 0x20 (irq = 102, base_baud = 230400) es un MAX14830 [19.901608] serial serial1: puerto tty ttyMAX1 registrado [19.927662] spi2.0: ttyMAX2 en I / O 0x40 (irq = 102, base_baud = 230400) es un MAX14830 [19.987868] serial serial2 : puerto tty ttyMAX2 registrado [19.999012] spi2.0: ttyMAX3 en E / S 0x60 (irq = 102, base_baud = 230400) es un MAX14830 [20.000769] serial serial3: puerto tty ttyMAX3 registrado
DTS
/ dts-v1 /; /enchufar/;
/ {compatible = "ti, beaglebone", "ti, beaglebone-black"; número de pieza = "BB-MAX14830-01";
/ * indica los recursos que usa esta capa / uso exclusivo = / el encabezado del pin usa / "P8.42", / spi irq: gpio2_11 / "P9.31", / spi: spi1_sclk / "P9.29", / spi : spi1_d0 / "P9.30", / spi: spi1_d1 / "P9.28", / spi: spi1_cs0 / / la IP del hardware usa * / "gpio2_11", "spi1";
fragmento @ 0 {target = <& am33xx_pinmux>; superposición {bone_14830_spi1_pins: pinmux_bone_14830_spi1_pins {pinctrl-single, pins = <0x190 0x33 / * mcasp0_aclkx.spi1_sclk, OUTPUT_PULLUP | MODE3 / 0x194 0x33 / mcasp0_fsx.spi1_d0, RX_ENABLED | PULLUP | MODE3 / 0x198 0x13 / mcasp0_axr0.spi1_d1, OUTPUT_PULLUP | MODE3 / 0x19c 0x13 / mcasp0_ahclkr.spi1_cs0, OUTPUT_PULLUP | MODO3 * /
; };
bone_14830_pins: pinmux_bone_14830_pins {pinctrl-single, pins = <0x0b4 0x37 / * mcasp0_ahclkx.gpio2_11 P8_42, RX_ENABLED | PULLUP | MODO7 * /
; }; }; };
fragmento @ 1 {target = <& spi1>; superposición {
celdas de dirección = <1>;
tamaño-celdas = <0>;
estado = "está bien"; pinctrl-names = "default"; pinctrl-0 = <& bone_14830_spi1_pins>; max14830 @ 0 {compatible = "maxim, max14830"; reg = <0>; / * cs0 * / mode = <0>; spi-max-frequency = <16000000>;
pinctrl-names = "default"; pinctrl-0 = <& bone_14830_pins>; relojes = <& clk4m>; clock-names = "osc"; interrupt-parent = <& gpio2>; interrupciones = <11 2>; // Edge Falling gpio-controller;
gpio-cells = <2>;
clk4m: clk4m @ 10 {compatible = "reloj fijo";
celdas de reloj = <0>;
frecuencia de reloj = <3686400>; }; }; }; }; };
Linux beaglebone 4.19.6-bone-rt-r10 En / sys / class / gpio se crea gpiochip496 y podemos crear 16 gpio y funciona pero ttyMAX0-3 no se está creando
y creamos ttyMAX0-3 usando mknod con éxito pero stty -F / dev / ttyMAX0 stty: / dev / ttyMAX0: No existe tal dispositivo o dirección
Cualquier cambio tiene que hacerse