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