Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DS1338. AM33xx. Linux-3.8.13. Device Tree.
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
shamrel
Доброго Здоровья!
Имеется устройства на основе Beaglebone Black (BBB), на линию i2c0 установлены часы DS1338. В конфигурации ядра опция "Dallas/Maxim DS1307/37/38/39/40, ST M41T00" активирована.
В файле am335x-boneblack.dts добавил устройство DS1338 :

CODE

am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = "default";
pinctrl-0 = <&userled_pins>;

.....
i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
0x188 0x70 /* i2c0_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
0x18c 0x70 /* i2c0_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
>;
};
....
};

&i2c0 {
status = "okay";
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;

tps: tps@24 {
reg = <0x24>;
};

baseboard_eeprom: baseboard_eeprom@50 {
compatible = "at,24c256";
reg = <0x50>;
};
/* добавил я: */
ds1338: rtc@68 {
compatible = "mxim,ds1338,ds1339";
reg = <0x68>;
};
};


В сопутствующем файле am33xx.dtsi в разделе ocp {} имеется:
CODE

i2c0: i2c@44e0b000 {
compatible = "ti,omap4-i2c";
#address-cells = <1>;
#size-cells = <0>;
ti,hwmods = "i2c1"; /* TODO: Fix hwmod */
reg = <0x44e0b000 0x1000>;
interrupts = <70>;
status = "disabled";
};


В результате часы не работают, в системе не добавляется новое устройство /dev/rtc1 (rtc0 -- есть, это чиповые часы).
Что еще нужно сделать, для того, что бы использовать часы реального времени DS1338 в Linux?
На шине i2c еще висит TPS65217. Он вроде как работает. Осциллограф на линии сигналы видит.
sasamy
Цитата(shamrel @ Feb 6 2014, 09:43) *
Код
/* добавил я: */
    ds1338: rtc@68 {
        compatible = "mxim,ds1338,ds1339";
        reg = <0x68>;
    };
};


У меня так прописано

Код
        ds1338: rtc@68 {
                compatible = "dallas,ds1338";
                reg = <0x68>;
        };


http://lxr.free-electrons.com/source/Docum...s.txt?v=3.8#L20

Цитата
Что еще нужно сделать, для того, что бы использовать часы реального времени DS1338 в Linux?


проверить что драйвер в ядре включен и собран sm.gif
shamrel
Спасибо! Заработало! biggrin.gif

Ткнёте носом, где можно почитать про "cape manager"? Что такое слоты, фрагменты, cape. Не могу понять.
Есть в дереве девайсов большой узел:
CODE

bone_capemgr {
compatible = "ti,bone-capemgr";
status = "okay";

eeprom = <&baseboard_eeprom>;

baseboardmaps {
baseboard_beaglebone: board@0 {
board-name = "A335BONE";
compatible-name = "ti,beaglebone";
};

baseboard_beaglebone_black: board@1 {
board-name = "A335BNLT";
compatible-name = "ti,beaglebone-black";
};
};

slots {
slot@0 {
eeprom = <&cape_eeprom0>;
};

slot@1 {
eeprom = <&cape_eeprom1>;
};

slot@2 {
eeprom = <&cape_eeprom2>;
};

slot@3 {
eeprom = <&cape_eeprom3>;
};

/* geiger cape version A0 without an EEPROM */
slot@5 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-Geiger";
version = "00A0";
manufacturer = "Geiger Inc.";
part-number = "BB-BONE-GEIGER";
};

/* Nixie cape version A0 without an EEPROM */
slot@7 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-Nixie";
version = "00A0";
manufacturer = "Ranostay Industries";
part-number = "BB-BONE-NIXIE";
};

/* adafruit 1.8" TFT prototype cape */
slot@8 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-TFT";
version = "00A0";
manufacturer = "Adafruit";
part-number = "BB-BONE-TFT-01";
};

/* adafruit RTC DS1307 prototype cape */
slot@9 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-RTC";
version = "00A0";
manufacturer = "Adafruit";
part-number = "BB-BONE-RTC-01";
};

slot@10 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-Hexy";
version = "00A0";
manufacturer = "Koen Kooi";
part-number = "BB-BONE-HEXY-01";
};
/* MRF24J40 Cape Override */
slot@11 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "Bone-MRF24J40";
version = "00A0";
manufacturer = "Signal 11 Software";
part-number = "BB-BONE-MRF24J40";
};

/* RS232 cape */
slot@12 {
ti,cape-override;
compatible = "kernel-command-line", "runtime";
board-name = "BB-BONE-RS232";
version = "00A0";
manufacturer = "Adafruit";
part-number = "BB-BONE-RS232-01";
};

/* GPS cape */
slot@13 {
compatible = "kernel-command-line", "runtime";
board-name = "BB-BONE-GPS";
version = "00A0";
manufacturer = "Adafruit";
part-number = "BB-BONE-GPS-01";
};

/* Beaglebone black has it soldered on */
slot@100 {
ti,cape-override;
priority = <1>;
compatible = "ti,beaglebone-black";
board-name = "Bone-LT-eMMC-2G";
version = "00A0";
manufacturer = "Texas Instruments";
part-number = "BB-BONE-EMMC-2G";
};

/* Beaglebone black has it soldered on */
slot@101 {
ti,cape-override;
priority = <1>;
compatible = "ti,beaglebone-black";
board-name = "Bone-Black-HDMI";
version = "00A0";
manufacturer = "Texas Instruments";
part-number = "BB-BONELT-HDMI";
};

/* Beaglebone black has it soldered on (but no audio) */
slot@102 {
ti,cape-override;
priority = <2>;
compatible = "ti,beaglebone-black";
board-name = "Bone-Black-HDMIN";
version = "00A0";
manufacturer = "Texas Instruments";
part-number = "BB-BONELT-HDMIN";
};

};

/* mapping between board names and dtb objects */
capemaps {
/* DVI cape */
cape@0 {
/* board-name = "BeagleBone DVI-D CAPE"; */
part-number = "BB-BONE-DVID-01";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-dvi-00A0.dtbo";
};
version@00A1 {
version = "00A1", "01";
dtbo = "cape-bone-dvi-00A1.dtbo";
};
version@00A2 {
version = "00A2", "A2";
dtbo = "cape-bone-dvi-00A2.dtbo";
};
version@00A3 {
version = "00A3";
dtbo = "cape-bone-dvi-00A2.dtbo";
};
};

/* beaglebone black emmc on board */
cape@1 {
/* board-name = "BeagleBone 2G eMMC1 CAPE"; */
part-number = "BB-BONE-EMMC-2G";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-2g-emmc1.dtbo";
};
};

/* geiger cape */
cape@2 {
part-number = "BB-BONE-GEIGER";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-geiger-00A0.dtbo";
};
};

/* LCD3 cape */
cape@3 {
part-number = "BB-BONE-LCD3-01";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-lcd3-00A0.dtbo";
};
version@00A2 {
version = "00A2";
dtbo = "cape-bone-lcd3-00A2.dtbo";
};
};

/* Weather cape */
cape@4 {
part-number = "BB-BONE-WTHR-01";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-weather-00A0.dtbo";
};
};

/* beaglebone black hdmi on board */
cape@5 {
part-number = "BB-BONELT-HDMI";
version@00A0 {
version = "00A0";
dtbo = "cape-boneblack-hdmi-00A0.dtbo";
};
};

/* nixie cape */
cape@6 {
part-number = "BB-BONE-NIXIE";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-nixie-00A0.dtbo";
};
};
cape@7 {
part-number = "BB-BONE-TFT-01";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-adafruit-lcd-00A0.dtbo";
};
};

cape@8 {
part-number = "BB-BONE-RTC-01";
version@00A0 {
version = "00A0";
dtbo = "BB-BONE-RTC-00A0.dtbo";
};
};

cape@9 {
part-number = "BB-BONE-HEXY-01";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-hexy-00A0.dtbo";
};
};
/* mrf24j40 cape */
cape@10 {
part-number = "BB-BONE-MRF24J40";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-mrf24j40-00A0.dtbo";
};
};
/* expansion test */
cape@11 {
part-number = "BB-BONE-EXPTEST";
version@00A0 {
version = "00A0";
dtbo = "cape-bone-exptest-00A0.dtbo";
};
};
cape@12 {
part-number = "BB-BONE-RS232-01";
version@00A0 {
version = "00A0";
dtbo = "BB-BONE-RS232-00A0.dtbo";
};
};

cape@13 {
part-number = "BB-BONE-GPS-01";
version@00A0 {
version = "00A0";
dtbo = "BB-BONE-GPS-00A0.dtbo";
};
};


/* beaglebone black hdmi on board (No audio) */
cape@14 {
part-number = "BB-BONELT-HDMIN";
version@00A0 {
version = "00A0";
dtbo = "cape-boneblack-hdmin-00A0.dtbo";
};
};

/* remain backwards compatible with old EEPROM */
cape@15 {
part-number = "2191";
version@R2 {
version = "R2";
dtbo = "cape-bebopr-R2.dtbo";
};
};

};
};



Как с ним работать? Что это?
sasamy
Цитата(shamrel @ Feb 10 2014, 12:58) *
Как с ним работать? Что это?


Я с этим не имел дело, посмотрите тут

http://learn.adafruit.com/downloads/pdf/in...device-tree.pdf
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.