From 6710b7568818db0fb484da8a0a0e9ae8416dc07a Mon Sep 17 00:00:00 2001 From: Mauro Ribeiro Date: Wed, 15 Oct 2014 01:24:07 -0300 Subject: [PATCH] drivers/amlogic: add pmu driver Change-Id: I4855949427ea4482462654bc02f562d2a11badbb Signed-off-by: Dongjin Kim --- drivers/amlogic/pmu/Kconfig | 9 ++++ drivers/amlogic/pmu/Makefile | 15 ++++++ .../amlogic/pmu/aml_pmu_algorithm.o_shipped | Bin 0 -> 104932 bytes drivers/amlogic/pmu/aml_pmu_module.c | 44 ++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100755 drivers/amlogic/pmu/Kconfig create mode 100755 drivers/amlogic/pmu/Makefile create mode 100644 drivers/amlogic/pmu/aml_pmu_algorithm.o_shipped create mode 100644 drivers/amlogic/pmu/aml_pmu_module.c diff --git a/drivers/amlogic/pmu/Kconfig b/drivers/amlogic/pmu/Kconfig new file mode 100755 index 000000000000..561677ee1cb7 --- /dev/null +++ b/drivers/amlogic/pmu/Kconfig @@ -0,0 +1,9 @@ +menu "Amlogic PMU battery algorithm Support" + +config AML_PMU_ALGORITHM_SUPPORT + tristate "Amlogic PMU battery algorithm support" + select AML_RTC + help + Say y if your pmu device need this algorithm support + +endmenu diff --git a/drivers/amlogic/pmu/Makefile b/drivers/amlogic/pmu/Makefile new file mode 100755 index 000000000000..c04d36e55a2d --- /dev/null +++ b/drivers/amlogic/pmu/Makefile @@ -0,0 +1,15 @@ +############################################################# +# +# NOTE: +# +# AMLOGIC_BOARD_HAS_PMU is general switch to compile on-board +# PMU drivers, ALL new added PMU driver should be depend on +# this config +# +############################################################ + +obj-$(CONFIG_AML_PMU_ALGORITHM_SUPPORT) += aml_pmu_dev.o + +aml_pmu_dev-objs = +aml_pmu_dev-objs += aml_pmu_module.o +aml_pmu_dev-objs += aml_pmu_algorithm.o diff --git a/drivers/amlogic/pmu/aml_pmu_algorithm.o_shipped b/drivers/amlogic/pmu/aml_pmu_algorithm.o_shipped new file mode 100644 index 0000000000000000000000000000000000000000..07812650e9bfcb3240bf2b21707b9a8341db2593 GIT binary patch literal 104932 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

eqH~e2L%D%&g$Y7NM{MS@oz+O zAIp9hKX&km?#+DiB;;0|sjZotGB4A`UALK~V{T77WN>q`H`6FeyTsn#zN@b=9xET1~EZzYT=m&fD zX3n9jy#pp*Gry4ek1K%sGZ_gT_hRQW>*&Kx^StBM03AFjbHTz>PRuSmbKyyulQWCp zwpGiM6Hi=65<6QV3h`DqkP10xGVP~iP63bSChe!RkTOph?WELQNDA)$Q!?3wC!Toq ziPxN{a`g+6>_P$Ur>vplC!Usq?8pMtc^(e;Q!^LM*BuLMte%EbGPAYt9oUQJtM-!= zVaBO7+^JemIfYuSG{SFj^_&izx`MnMv~`*q@XnupA=q7_o7Pg<8M9qH@x%ou&OcFA zE=`9~qfVU}8m#eQP@jz|fM;3Z8irzp&z{Ylt?-=FE5@^Iw#g(pcL4)do9A6_BR@YK z4d`8-R&D6Kz|hVpFARvJ2T5{KI%I2q#p!b}aB+1-%a^DE9$XINv6*XB2T-;H#;uO# z&|L#?0mR|zh^tp;IV1CmQ>)z_-%ysjvf@yldZiS0*_rvy$r95oMV$Qh@8;MS2x))T7LLFZ02T^HpraPw8Q7cq2Vj zOJGASwS|5Ja8u|<05`|>@Oq|oGMG6-*%HRAp-|)2P@_#}yH^nUwJoiq=D0ex&)%du zI!?^&s?``f6@ejoHA>l0QKR7Qw9d3&zvL6TGmJF!t0yg(HXaK0R^R|!_RZn|b~>8} z)12+)b@N49H=N7j-7{OnQ*W$H&9%YEbZyMR)Pn zek%PHF5Rv08ILblC?97wx&0NQ{!`(9<)SJD>&ed~eF{{xI{DX3_faqDJA+E zCU1iVtMC<%r>Ii?<6JbTK-qH#r2>ywft?Ce00dN4|8-01QQ)~LrUkyrrN$L%KZ~g5*21^;`>+vb8*Af6qRuv~I52r0@RfUH4ay5ifI{9$KM^RcB7qh1?lutBIq^yoc+| z$^zcM*+MFCjO&~?7K%gh+8j-E6>MuMgZLc5GLOdG2LPYqy5j!^6|Y@(RQC!YZU1-o zvm<@QYZqMb+GTY^XXnz@skv08Szhs*CaR|obBPFUe*bU(V8zYvuM(^tL=?x~)Fq+f zId`i{-Tf~=@n0nlVxH1i1L;q##=QFPd}8Wa{>03fSDWm;zxt;8nH2xU^r~d#8`@_` z>*pk@%i==uW-W{ z9^�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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +extern struct aml_pmu_api aml_pmu_common_api; + +static int aml_pmu_algorithm_init(void) +{ + aml_pmu_register_api(&aml_pmu_common_api); + return 0; +} + +static void aml_pmu_algorithm_exit(void) +{ + aml_pmu_clear_api(); +} + +module_init(aml_pmu_algorithm_init); +module_exit(aml_pmu_algorithm_exit); + +MODULE_DESCRIPTION("Amlogic PMU algorithm modules"); +MODULE_AUTHOR("tao.zeng@amlogic.com"); +MODULE_LICENSE("Proprietary");