Перейти к содержанию
    

T113-S1 аппаратный SPI1 CS1 + GPIO CS2

нашёл вот так:
 

Цитата
So if for example the controller has 2 CS lines, and the cs-gpios
property looks like this:
 
cs-gpios = <&gpio1 0 0> <0> <&gpio1 1 0> <&gpio1 2 0>;
 
Then it should be configured so that num_chipselect = 4 with the
following mapping:
 
cs0 : &gpio1 0 0
cs1 : native
cs2 : &gpio1 1 0

cs3 : &gpio1 2 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну вот нихрена не понял, где тут две CS линии

ну и чуть выше по документу прибило совсем:
 

Цитата
- cs-gpios - (optional) gpios chip select.
No other properties are required in the SPI bus node. It is assumed
that a driver for an SPI bus device will understand that it is an SPI bus.
However, the binding does not attempt to define the specific method for assigning chip select numbers.
Since SPI chip select configuration is flexible and non-standardized, it is left out of this binding with the
assumption that board specific platform code will be used to manage
chip selects. Individual drivers can define additional properties to
support describing the chip select layout.

 

4 минуты назад, toweroff сказал:

ну вот нихрена не понял, где тут две CS линии

точнее, тут понятно расположение значений для cs-gpio. Откуда "2 CS lines"? Где-то в драйвере sunxi видел, что cs >=4 вообще не будет рассматриваться
завтра буду пробовать

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, toweroff said:

Откуда "2 CS lines"?

Одна используется по назначению, вторая для покрытия cs-gpio.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока вот такой результат (прототип на T113 до меня пока добирается, тестирую эту часть на NanopiNeoCore, там CS0 нативный, CS1 через GPIO):
 

&spi1 {
        status = "okay";
        cs-gpios = <0>, <&pio 11 11 GPIO_ACTIVE_LOW>;
        spidev@0 {
                compatible = "rohm,dh2228fv";   /* =spidev Kludge, workaround for "buggy DT: spidev listed directly in DT" */
                spi-max-frequency = <5000000>;
                reg = <0>;
        };
        spidev@1 {
                compatible = "rohm,dh2228fv";   /* =spidev Kludge, workaround for "buggy DT: spidev listed directly in DT" */
                spi-max-frequency = <5000000>;
                reg = <0>;
        };
};
root@OpenWrt:~# dmesg | grep spi
[    0.317015] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.341211] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.344645] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.361196] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.362052] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.404093] sun6i-spi 1c69000.spi: cannot register SPI master
[    0.415344] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.413215] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.423505] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.468072] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.474606] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.520434] sun6i-spi 1c69000.spi: cannot register SPI master
[    1.527071] sun6i-spi 1c69000.spi: cannot register SPI master
[    5.636167] sun6i-spi 1c69000.spi: cannot register SPI master
[   20.326411] sun6i-spi 1c69000.spi: cannot register SPI master
[   20.332482] platform 1c69000.spi: deferred probe pending
[   26.551622] sun6i-spi 1c69000.spi: cannot register SPI master

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 minutes ago, toweroff said:
<&pio 11 11 GPIO_ACTIVE_LOW>;

11 - эт какая буква получается?

 

25 minutes ago, toweroff said:
        spidev@1 {
                compatible = "rohm,dh2228fv";   /* =spidev Kludge, workaround for "buggy DT: spidev listed directly in DT" */
                spi-max-frequency = <5000000>;
                reg = <0>;
        };

reg = <1>;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, aaarrr сказал:

11 - эт какая буква получается?

PL11 по идее..
image.thumb.png.81fa515d2085d5b35de18536c3a642c7.png

 

8 минут назад, aaarrr сказал:

reg = <1>;

да, точно. Поправил, но результат тот же

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в sunxi-h3-h5.dtsi вот такое описание:
 

                r_pio: pinctrl@1f02c00 {
                        compatible = "allwinner,sun8i-h3-r-pinctrl";
                        reg = <0x01f02c00 0x400>;
                        interrupt-parent = <&r_intc>;
                        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>,
                                 <&rtc CLK_OSC32K>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        #gpio-cells = <3>;
                        interrupt-controller;
                        #interrupt-cells = <3>;
                        r_ir_rx_pin: r-ir-rx-pin {
                                pins = "PL11";
                                function = "s_cir_rx";
                        };
                        r_i2c_pins: r-i2c-pins {
                                pins = "PL0", "PL1";
                                function = "s_i2c";
                        };
                        r_pwm_pin: r-pwm-pin {
                                pins = "PL10";
                                function = "s_pwm";
                        };
                        r_uart_pins: r-uart-pins {
                                pins = "PL2", "PL3";
                                function = "s_uart";
                        };
                };

т.е. у порта PL вообще отдельное описание и пин уже как бы занят

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, toweroff said:

пин уже как бы занят

Не занят, если его никто не использует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не хочет spidev1.1 поднимать(
 

root@OpenWrt:~# dmesg | grep spi
[    0.336207] sun6i-spi 1c69000.spi: chipselect 0 already in use
[    0.354936] spi_master spi1: spi_device register error /soc/spi@1c69000/spidev@1
[    0.354974] spi_master spi1: Failed to create SPI device for /soc/spi@1c69000/spidev@1
root@OpenWrt:~# ls /dev/spi*
/dev/spidev1.0
root@OpenWrt:~#

извиняюсь... почему-то опять всплыл reg = <0>;
сейчас пересоберу, проверю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заработало.
aaarrr, большое спасибо за помощь!

это выборка с софтовым CS1
image.thumb.png.07ba33e3888d7f0483966fcba742294f.png

это с аппаратным CS0
image.thumb.png.5e6e921a76e923b950c5a545f06fcb97.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как то не очень красиво. На первом графике в начале активны оба CS. Возможно придется добавлять костыль в код, чтобы избежать этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Zig сказал:

Как то не очень красиво. На первом графике в начале активны оба CS. Возможно придется добавлять костыль в код, чтобы избежать этого.

не очень, да. И, как оказалось, вносит свой раздрай при обмене((
пока ищу, можно ли корректировать время активирования CS до начала такта и время деактивации после

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, toweroff said:

И, как оказалось, вносит свой раздрай при обмене((

Что не так?

 

11 minutes ago, toweroff said:

пока ищу, можно ли корректировать время активирования CS до начала такта и время деактивации после

Насколько я помню, нет. Оно и так составляет десятки микросекунд в силу общей убогости подсистемы SPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, aaarrr сказал:

Что не так?

пока выражается в некорректной работе. При отключении в настройках устройства, висящего на cs-gpio, устройство на аппаратном CS начинает работать корректно.
чуть позже залезу анализатором, попробую посмотреть предмет конфликта

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...