From f16e1a9f2e670fdf1227a73968f9dde0a7ae1db7 Mon Sep 17 00:00:00 2001 From: hyunjun_cho <gusrkfl0609@ajou.ac.kr> Date: Fri, 3 Jul 2020 12:16:41 +0100 Subject: [PATCH] library control management Pi final --- smoke/smoke_dev.c | 48 +++++++++++++++++++----------------------- smoke/smoke_dev.ko | Bin 7644 -> 7528 bytes smoke/smoke_dev.mod.c | 2 +- smoke/smoke_dev.mod.o | Bin 2908 -> 2908 bytes smoke/smoke_dev.o | Bin 6688 -> 6596 bytes 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/smoke/smoke_dev.c b/smoke/smoke_dev.c index f4d08cd..6e5c320 100644 --- a/smoke/smoke_dev.c +++ b/smoke/smoke_dev.c @@ -17,14 +17,14 @@ #define GPFSEL0 0x00 #define GPFSEL1 0x04 -#define SPI_CS 0x00 -#define SPI_FIFO 0x04 +#define CS 0x00 +#define FIFO 0x04 static void __iomem *gpio_base; static void __iomem *spi_base; volatile unsigned int *gpfsel0, *gpfsel1; -volatile unsigned int *spi_cs, *spi_fifo; +volatile unsigned int *cs, *fifo; int smoke_open(struct inode *inode, struct file *filp){ printk(KERN_ALERT "smoke detection sensor driver open!!\n"); @@ -34,19 +34,19 @@ int smoke_open(struct inode *inode, struct file *filp){ gpfsel0 = (volatile unsigned int*)(gpio_base + GPFSEL0); gpfsel1 = (volatile unsigned int*)(gpio_base + GPFSEL1); - spi_cs = (volatile unsigned int*)(spi_base + SPI_CS); - spi_fifo = (volatile unsigned int*)(spi_base + SPI_FIFO); + cs = (volatile unsigned int*)(spi_base + CS); + fifo = (volatile unsigned int*)(spi_base + FIFO); *gpfsel0 &= ~(0x1FF << 21); *gpfsel0 |= (0x24 << 24); *gpfsel1 &= ~(0x3F); *gpfsel1 |= (0x24); - *spi_cs &= ~(0xFFFF); + *cs &= ~(0xFFFF); - *spi_cs &= ~(0x01<<2); - *spi_cs &= ~(0x01<<3); - *spi_cs |= (0x03<<4); + *cs &= ~(0x01<<2); + *cs &= ~(0x01<<3); + *cs |= (0x03<<4); return 0; } @@ -56,7 +56,7 @@ int smoke_release(struct inode *inode, struct file *filp){ *gpfsel0 &= ~(0x1FF << 21); *gpfsel1 &= ~(0x3F); - *spi_cs &= ~(0xFFFF); + *cs &= ~(0xFFFF); iounmap((void*)gpio_base); iounmap((void*)spi_base); @@ -67,37 +67,33 @@ ssize_t smoke_read(struct file* flip, char* buf, size_t count, loff_t* f_pos){ printk(KERN_ALERT "read function called!!\n"); unsigned char transmit_Data[3]; unsigned char receive_Data[3]; - int transmit_Count = 0; - int receive_Count = 0; - + int transmit_Count = 0, receive_Count = 0, data = 0; + transmit_Data[0] = 1; transmit_Data[1] = (0x08) << 4; transmit_Data[2] = 0; - *spi_cs |= (0x03<<4); + *cs |= (0x03<<4); - *spi_cs |= (0x01<<7); + *cs |= (0x01<<7); while((transmit_Count < 3) || (receive_Count < 3)){ - while((*spi_cs & (1<<18)) && (transmit_Count < 3)){ - *spi_fifo = transmit_Data[transmit_Count]; + while((*cs & (1<<18)) && (transmit_Count < 3)){ + *fifo = transmit_Data[transmit_Count]; transmit_Count++; } - while((*spi_cs & (1<<17)) && (receive_Count < 3)){ - receive_Data[receive_Count] = *spi_fifo; + while((*cs & (1<<17)) && (receive_Count < 3)){ + receive_Data[receive_Count] = *fifo; receive_Count++; } } - while((!(*spi_cs)) & (1<<16)); - - *spi_cs |= (0x03<<4); - *spi_cs &= ~(1<<7); - - int data = ((receive_Data[1]&0x03)<<8) + receive_Data[2]; + while((!(*cs)) & (1<<16)); - printk(KERN_ALERT "reading input : %d \n", data); + *cs |= (0x03<<4); + *cs &= ~(1<<7); + data = ((receive_Data[1]&0x03)<<8) + receive_Data[2]; copy_to_user(buf, &data, sizeof(int)); return count; diff --git a/smoke/smoke_dev.ko b/smoke/smoke_dev.ko index 46ea2a6e2b6f38b6fe4b9dcccca4485527d6780e..48bf9127b20fce0f817289d3011ca95827bebc64 100644 GIT binary patch delta 1467 zcmca({laR30@DKViAqW$Kkr-0PwJhx{oRQpA3V5MUsGV+wR2;{R>t~-1rM157Ch82 z;C}k=|Nqwv1`LlG3>+Ra2rPJPBEbDr;KAgl%nS=2GAb;1s3YM0l;Oa<rv?Xl9y1*1 zdn#~X@>A^x-j5g!7ChE7@P1lv@Zhnof%j7egE>zd44NM^81y_9FqrU^i6QW@NW+Au z3<V1gGZrkk%y3}xQ=OCI4_Fx(xaw65Kn65FU=(P4#AOitl)<3m>Bs;7UolLW{FI3y z=rO~A1&0|AEV#UKhRg$o12aVV4jd9^RA>_V_W!>W&w=R=pZ)(Y#h@_xDX+qUhYSLf zpVsRhdTg(7=&^x7<6{Pa=BEM-6P{`rL_cK^nDCU@WWmD*frF131R9=d3Pe9;wqZ7V z#Gx?hDWgI20}})8rz`@~9x(}AG+<CzV9dY}^q84}L5huG!9x}WP-u8R0)>!<g7j0? z&A!b3jACZyCPv0ihK@!~78b7NhL)~QW@bhPlQ*#(+dP3)fo1a<&JtGFP6lMa#;_Eb z%OJt9o`Hd(04^rNu!Vtvp#h1%lYxO@%jBv2)@=J27#LnKOuoi%#dvtKpn$yNIjAxg z1_lO3204Zs3=9k)HVA|G525m6V0mGN-wX^4AT}SAFEF`Kz`kCM5u(h2iGe|oL5jfy z$_I%GFfcH<F)}cKXppIb3~~&fP<ayu1_mJp4u%jYAErJA%7@8kL-`3{^=u5~j0_As zP?ria$kj8{LlwXbn83)u@PmPYp#rRdg<&2e1498L149iX$U+u|m5dAwA_xN*)<N}y z^awGqFzkf#Vdfn~<DWp`2Qx6-L=j+Mc!|dU&B(yOfn*^w6Ub-?28E0iln?Wv>SRWt zZPJc@&K~|jh75W>&c-0Z1VosE2(!u8g<6=Bizi13D^G3_wqr@lOv|5qP`F~UlZe>l zaFISvX9k8IMg|5Q=gIFxwCYbVF)+vkGB7*<(OwYG%LFkn$S^Q4XzMaCD1c}^1_l)d z1_m8n1_lift;fJ%!N9;E6U@Ni0Fu{dU~mD^1`G@yAbEWT1|JY@z`zgyQWwC$AOVus zgP5zM2QgPBoPi%~u(k=*V3W!FM5ik{L4t(Ihk*eU(M)~}3^oi53{2h(;AF_;vAIkv zh>7vd<b%?}lkZ3fu>KKdV7M^(ql7YR3^M~m!sI{+;mJCZ0!(K_CfiA>vF>4JU@!p- z)<_C4s!Z;cRA>6YJlRh|Z1NdN0Y;I@cO}&sLngCIsWa+K)|FCcw3r+!rOwnNI=N0t zjn#pLfq@6CdykX=qtE2CQtC`gL??ffQezC6EGw<f`iF&qL2R<8v@)Z}<XmZWrahvQ zr%9_Zs!ZN1t<L&{gMpy|tox6&0Mi}O$$T<uj17}bWz?Deh)#}^QDZ&8&A`Aod7*^x z<T)||Ob59quai+@J;KevAOY6)Mn-_?2>0ZFGHOgbJd@{1h)uSU6=39<>?^Cz>%han n(7?*Tpv=I);54~WR+{yIAOnNt<b|@z5<FrI3=@$O8;l76<&{3( delta 1501 zcmaE1b;o*w0+WcuL?tB=)0a`qZu?#tdr#YGy+@_DZK1^L=#3Fu8S4WUJY-5(@KD2m z`{}>`|6emGFg#{ZaCppMu;8(df%j8^2a}#M9a!*?Szy6K28MZ04Hz08Gcfc$6=0b3 zRQrMVBSwV<kM$J1pVlipc&w}7{ggpr!qWzYrpF8l4NnCW<~(I$2z)HkFy|>l!Ggn# z1q&`SFid)?z$yNKm4SgvMZx<~J)=U?14e<yM_dX)PZ<<Co__rQ{}sc8Nl%#=f*&(5 zEI7=_u;B8_83GR&7-op_F&q|WG-ww3_W!>W1H<%(&p@=nq^ArF438NEK(xbSEraN% z1_F(b83dZ13JA=3%51XWq2__;r_46Yj~EmtKIJiJe$b$B=rMyr<5OmV1x^o5pg!j{ zSn#mk_V8nSgTs$G3?@HiQJDIOS>ciagTVr028Q6r%nS@ttPBetvM4NgY$D+O2ozcx z3er#6Hajx=Gm2T7I5|7Hni?27xmg&Qx|y39nwq#dO<u-wOpMX6C^a!9GcR2sGq0eu zM8QfyHAR7Ia~7)-%j5&>GMjriOISmfGB7X{Fu;HaLnn+0rr8))foT{a!LWsafuRG& zWe{Q5$-uxc1Bt(nfq~)7WLJJ`w!<J%#>s8`R*WYmALN&JybKaxU|?WjU|?WmkYl(D zWyAQ-pz>m1d0~(u1`wMM$`_riC}3Z&%?MHEz{J2H$RNdF3FU)C1sE6@yrFy(1_lNp z1`dWWC?6&t2j#=$a~T;JK>9$g5M+>JD1pi+fc3L6G%zwS@IYNE$RJnG&;eBdGjJv& z1H%sn28If-1{Q|pj0_9~j0|9PLJTYno1p4JYC!zGP(DomQ8fM;H2z%_elP>WTND8X zhX0HV3>*j-GO#m&jD}#4&*Y$dn2$7>7#Kv5)EiCSD7a0**_c7k$I;K(!#~K7LC?q8 z1VosE2s032KDkM#WiqF*5?gUWW_)t-WG!L)$$7%%G9YeRW?DW&e0*tMQEGZ-aY<@X zd~!xnN^05UpTZM3T^Ja87#SFJTqaKv(W*~iVqnnLVPME$VqnnGVPIIm#K0gEz`$?? zL<cf3yaCbP5C_TxF)+w5FfeHAF)%2AXnh6-6$S<d9X$pH4G^u*z+l0^z#tRMz~BIq zH(+3J0nvsG3?3kP0|o{k5N*i75CBpaz@W|`0aBn3F<3_*Vz5jE#9(bxsKKU_y+o%g zIzz&h$(Mlvlv<el7#M6A7#Ns*7#MDVXwS_|VnIxdKPHDtD6>Y0FfhEBTq~i>m@#>w zggTRh=;TupYK$i)f0R&XoH1EaQl0V7WJgJLMuo|llIn~nCQp=9XSA4XC?!7mf}{YW z%jAcW>P!q`lewhS7=0!iN~tqOOpcUNXOa+`+$5#Om@s*zlsYR1D+7bx<f~H3j24rB zN~tp$h)q_KR%7&->?y6z#KAeaNLr04Ky30XX*I?JlMhO(GZlzUekHBO#K1FINJfo` zk!P}%j2aUQ&*UTs)g=S6Y@>`iqtE1<GU~hyJPZsISQ!|U85kIxC-cfmvkC|?Ft|<D Nl~rbJm>ei84ge1{KJ@?q diff --git a/smoke/smoke_dev.mod.c b/smoke/smoke_dev.mod.c index e70a193..28ad916 100644 --- a/smoke/smoke_dev.mod.c +++ b/smoke/smoke_dev.mod.c @@ -44,4 +44,4 @@ __attribute__((section(".modinfo"))) = "depends="; -MODULE_INFO(srcversion, "194BCBE501BF825F76154FB"); +MODULE_INFO(srcversion, "167423B1A2B88E719EB6620"); diff --git a/smoke/smoke_dev.mod.o b/smoke/smoke_dev.mod.o index e401880a933fd15ad1ef28a017eb706004b3f0fe..8d67c23ce067eb58f090d74da96d97e7b46260ff 100644 GIT binary patch delta 35 qcmca3c1LVO50jXgxrvdnlcA%LlZAz=xuK=2lbM;3!RAFwyEp*9?+Pmb delta 35 qcmca3c1LVO50jXsiIcOFtEqvZlbeN+shhc(p{a?R)8<7?yEp*Dt_ocM diff --git a/smoke/smoke_dev.o b/smoke/smoke_dev.o index cb7d48810a79fdddc6e5ef299873721e8ec8b187..35286893ecc9a281dcfa0de256d385b21667011c 100644 GIT binary patch delta 1637 zcmZ2ra>RIo0@D+bjY|4V^$80eG6gJnsA0hU^xyyguNe#&9y1s?JZ2DB@YqCv`>DW# z$xoRX7CdBBSnyCs!22n~fq7324)i=`IMDZ0;K1ak+7G-RF&Zp*tY_f;wBF#sV_gI9 zrwj&jo;DaXKV~rKc`9Hq;VBbC;A4@72~Qac793_QSa6x)z~rYoC&eGIGB9w}s~CU` zXnw#b(D;bUAowYRLC4dN|Np;Ym@xS%6GPBrh64)@GaguQdF2e52Mh;hi1HmcB+jVN zB=qh7e<_{=(;q(j|6hthVe(U6g#`~81SUVN*FE&uUg6MV1A)fJ3<Awh1sEng)iQ{F z${;Y|DYMCfhYbP;A2SFvJk=D4e#&gaZ1#vlVbW7ZgXRY&2Ha0s1g1S=61Zr<ps>K0 zfg$KIGXsMZ8^eN!EDE5|@O}geAq@rTr>vVNGH+(w9K-sCadHH^f~gJzGGJmbV_;w? zfD4H-STis%G$8RE7#J9~OkT^L&F0F$!0>`$vK&Vgqu1n04tc>)s4^A?1_nk37KZrA zD>>v9GoYekU{Mi<CI$uu5StImpFa5|M|}NSsHz_f3=BdHtPDG#d=MqTz`$?<#DHQD z|2&ipqCouXAO;kJ`0p4P7(ixKK+XFDl><>Ac@{<nh5|+gh8jk&ef13dj36lp1}RWP z;~SyzouT{$umxNUeo#Kh1d#p&C?6)D1Ld25)$=oyL-`Q(!3+%DPyv{NS&R$}A`A=+ zpwJX#U}2cg$iM(H7{*`3$iTpZB)^K0fq?^wziIMJE?a3wKW7jBAVUT{A7^6_VFDsd zL4?`nZ(M<ltZA8P`3#docvO{`oFN7<nKCed9Koc=z+l6`z`$e-u~<fb@;n}SMFR!~ z0|o{L8AFIF9S#Nt4=A65k%2)*fAT#Zbxi{Xh8Pgfgn=OiO1FS$eFlaOMg|6LGX{np zMg|5Qv&nkA;)Vtc3~NB591IK_K%yKB3@4Zv7-Y;D7#@IV3s5LAFleztXa=LneZ2bh z`V0&*3=9m~f(#4_AX<olL4|>VK}V2*K?6h!F))BM%2+WlfKsitFav`NNSz48#X7<a z3_c)rA`A=xARmCd#lXOz#SgOu68Ku83=9$=eL@iXbc7)G8Ohi}EYy~US}4uH0Lo4> zFoPt~43gQL$G3}-(PXlwKrrK*$+ZH?tRXxM3>PLZ6;NheF!`i_I^&Va9|hDIRVGUc zsx#i1>?o+t7&AFjP@U0c@<c&(Mvuum1=X3h@J@atsKyvDnNvue=?w2=BOx`$mdO(Z z#U~dC2{2BW+$f~Z^oMuyDj_w-8Ivyxsk5G7VPFuO{8vbs=^pE3C1Ev2rpcbd>Woa2 z3x(BnP1qP199S3_q!<_&^q}bnl+HLA7#NtL9sp4#Tnr2cCLa}6W?CY=`IYd!;oy(S ZU6N{yQzmbeRA*WuIr)~PGc!K}0|3#pK?MK+ delta 1743 zcmX?Nyuf6F0+WO2MkRfw`hW!wnGzN})G*+F`tSe$*9-~_j~Nsk9y1s$c&uaK{Z!z= zq^C>=7CdAYSn!a6Vct^%hK9!s41G@p7$!Z{e&GFxQDMPjJq7Ql^$HIj>neCZWl)&# zv_YZiF@r+GQvroJPnj43AB!~1dCE|*;4ovsg3AmHlb$MYia%gwVBk_w@P1U!sL=F) zQK0b=mqO4}28E8NAOHV<#V}#gQznMs#|#V$4l^<=xV&<Pzyk(`8KQg)hs7BUnuWgo z|1ZVBF#X{(5N$B&DFXw;V+H{b?eJL3Ao{6+K;vTufu^Sd0&|`+n=E*!c_8{Jvkmhj z28D@Fc?_B#G$<T;%%ITtlv!Yb-a`|p&v^|NJgm1p{Mg>$@M8{x$xm4nraod;xMaX! zu)vssA^0&f1A`Rn<U(d)Mz+nZ%$pg-7!8Y36H_wt(iJlE3Q9{9tQ1sJ6u35<vA$zu z)nQ;@D3~nCu5D__fDD)ztQi;>I^aU03=Rwo3^S1Ut_%zeXC_y&XR~>ML>VW)Vvl0< zpX|yZFBk<9U|?WiVPIfjWME-PnOw>tub2xJ6$6WkFtjr;Fo4*6Q2w0BTRGzEH$heX zU|?VnVqj(13+00-0R{$!vmgc(gZNjVY!C(F-vKe87{vd~z`y`9s{(2sBO_Fjfq?-e z&&kNZP{7E*(7_0{ubx2!O@SI3-yDta0p%xvE#P7ZhVntyfGkLb@?r9YP`(LRJwHPY zln+rK%)l@KDgaY3pOJw<1R9!x3@i*Q7$GhPg)WG{o{@op2T6WABLf2m5`X{XR4!Wu zXJZCEA4flD5C0%T20b5V6A)nvBFsR9`R2V`fsDMx1)1?_nQ8e9AjV{29#vHa1_mY< zh=ELI3=AMgG3hff*nq@MAP$i+m>k6;uV~1?V8Fn@AY%kkrNhC%-~r`xFfuU67)+kU zqh4>wzz_rCnKCe>K<O3`Z2*Y^ZF2^O9!3TR9dk%PX!9{JOabxv7{DHvF=Sv^!^ps( z&B4I10VK}Bz>vViz@W{~z>vYjz@Wp=z_5UcfdQoM3W&B~V0Z(fEkWVSz`&)&3Slr9 zPd4J!uQy;|kYQk8&=z7~Pyo@w3=Ap^3=BF#3=A3|T9|>s0^|v625<(@7GYp;0jU#( zcuq%zfx!o)PLzQm0Hh9@i?l#753<M@k_)uN7#Ji#`h+3&=?FvYGm^1`Sg0)nwNQqE z0hA{}?g#1Dk^+$o3=A-XWH$@(?P6rCn0%H$nDNJCMFC~j89WROFD82mC^N2^oGYNt zcwzEX0d>ZP$$JIVSzj<SFeFSa6cC>LM?ipa$7EhXbyg1+1_mCmn2(?UW60!KL3Jhp zzR7KZYK$?H*9xjLY4A<HCaA_ZVe(%=b;dc9RfW`<BKRiz38}FzVPRk}nB2%OJh?|m zfb|Ls1B2e=g+j_qOl*^n38^uvO@1q+&Z@@7z@QISq$4cA8^OlF5WvE~0P=|bWKUsf z))ia~3}+`#6c(ObBP_tgAhNkn_}=jH(PTYIHO3E<LnYOj7^EiGNjftNFfafB0G&;x -- GitLab