device tree i reset nodów

0

Hej
Zna się tu ktoś na programowaniu w kernel spejsie, bo na forach zagranicznych poświęconych programowaniu w kernelu nie da się zarejestrować, mejle aktywacyjne nie dochodzą a ja mam tylko małe doświadczenie przy programowaniu character deviców.
Mam problem ze zrozumieniem tagów resets i reset-names:

    rst: rstmgr@ffd11000 {
			#reset-cells = <1>;
			compatible = "altr,rst-mgr";
			reg = <0xffd11000 0x1000>;
			altr,modrst-offset = <0x20>;
		};

		mmc: dwmmc0@ff808000 {
			compatible = "altr,socfpga-dw-mshc";
			reg = <0xff808000 0x1000>;
                         ...
			resets = <&rst SDMMC_RESET>;
			reset-names = "reset";
			...
		};

Jak sobie podglądam implementację kernel drivera dla powyższego układu to tagi resets, reset-names w ogóle nie są parsowane:
https://github.com/torvalds/linux/blob/master/drivers/mmc/host/dw_mmc-pltfm.c
Więc nie bardzo rozumiem jak z poziomu user spejsa mogę wywołać reset tego układu odwołując się do tego drivera, jakim kawałkiem softu?

Co do rst:
https://github.com/torvalds/linux/blob/master/drivers/reset/reset-simple.c
to są metody assert i deassert, którym mógłbyś przekazać id=SDMMC_RESET ale z user spejsa też nie da się odwołac do tego drivera bo to nie jest char device tylko to instaluje się w katalogach:
/sys/devices/platform/soc => ffd11000.rstmgr
/sys/bus/platform/devices/soc => ffd11000.rstmgr
i nie masz jak się odwołać do tego.

Więc nie bardzo wiem co ja mogę zrobić z tagai resets i reset-names. Może implementacja dw_mmc-pltfm.c jest niepełna i brakuje tam parsowania tych tagów? Właśnie spodziewałem się że jakaś funkcja zostanie podmapowana pod te tagi.

0

Nie moja część kernela, także idę po omacku, ale czy do_hwreset i stojący za nim ioctl w https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git/tree/mmc_cmds.c to nie będzie dobry trop?

1 użytkowników online, w tym zalogowanych: 0, gości: 1